Wymuszanie ciągu na liczbę całkowitą w GolfScript

12

GolfScript automatycznie wymusza wartości, zgodnie z następującą sekwencją „priorytetu”:

liczba całkowita → tablica → ciąg → blok

(wymienione od najniższej do najwyższej).

Oznacza to, że "1"7+pozostawia ciąg "17"na stosie (a nie 8), ponieważ ciągi mają wyższy priorytet niż liczby całkowite.

[ Do tych weteranów GolfScript - przeprosiny za obrażanie waszych inteligencji. ]

Jak można to zrobić w drugą stronę? To znaczy, aby zmusić ciąg do liczby całkowitej ?

naparstnica_
źródło
name:~ args:1 functions:bitwise not, dump, eval
Leaky Nun
To daje 8.
Leaky Nun
@LeakyNun; Ładny! Czy chcesz to udzielić odpowiedzi? Z pewnością bym to zaakceptował.
digitalis_
@downvoter; czy mógłbyś zostawić komentarz wyjaśniający, dlaczego przegłosowałeś?
stir_

Odpowiedzi:

10

Jest operatorem ~w golfscript, który wykonuje następujące czynności: bitwise not, dump, eval.

Dlatego "1"da ciąg, "1"podczas gdy "1"~oceni ten ciąg (do liczby całkowitej 1).

Następnie wszystko, co musisz zrobić, to "1"~7+.

Wypróbuj online!

Leaky Nun
źródło
5
Warto wspomnieć, że jest to evalkod golfowy, co oznacza, że ​​np. "1.0"~Robi coś nieoczekiwanego.
Lynn