Ricoprire una stringa con un numero intero in GolfScript


12

GolfScript coercita automaticamente i valori, secondo la seguente sequenza "prioritaria":

intero → matrice → stringa → blocco

(elencato dal più basso al più alto.)

Ciò significa che "1"7+lascia la stringa "17"nello stack (e non 8), poiché le stringhe hanno una priorità più alta rispetto ai numeri interi.

[ A quei veterani di GolfScript - scuse per aver insultato le vostre rispettive intelligenze. ]

Come sarebbe possibile farlo dall'altra parte? Cioè, per forzare una stringa in un numero intero ?


name:~ args:1 functions:bitwise not, dump, eval
Leaky Nun,


@LeakyNun; Bello! Vuoi mettere questo in una risposta? Lo accetterei sicuramente.
digitalis_

6
@closevoter Le domande che
user8397947

@downvoter; potresti per favore lasciare un commento che spiega perché hai effettuato il downvoting?
digitalis_

Risposte:


10

C'è un operatore ~in golfscript, che fa la seguente: bitwise not, dump, eval.

Pertanto, "1"fornirà la stringa "1"mentre "1"~valuterà quella stringa (nell'intero 1).

Quindi, tutto ciò che devi fare è "1"~7+.

Provalo online!


5
Vale la pena ricordare che si tratta di un evalcodice golfscript, il che significa ad esempio "1.0"~fare qualcosa di inaspettato.
Lynn,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.