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 ?


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!


5
Warto wspomnieć, że jest to evalkod golfowy, co oznacza, że ​​np. "1.0"~Robi coś nieoczekiwanego.
Lynn
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.