Erzwingen einer Zeichenfolge zu einer Ganzzahl in GolfScript

11

GolfScript erzwingt automatisch Werte gemäß der folgenden Prioritätssequenz:

Ganzzahl → Array → String → Block

(vom niedrigsten zum höchsten aufgelistet.)

Dies bedeutet, dass "1"7+die Zeichenfolge "17"auf dem Stapel verbleibt (und nicht 8), da Zeichenfolgen eine höhere Priorität als Ganzzahlen haben.

[ An diese GolfScript-Veteranen - Entschuldigung für die Beleidigung Ihrer jeweiligen Intelligenz. ]]

Wie wäre es möglich, dies andersherum zu tun? Das heißt, eine Zeichenfolge in eine Ganzzahl zu zwingen ?

Digitalis_
quelle
name:~ args:1 functions:bitwise not, dump, eval
Undichte Nonne
Das gibt 8.
Undichte Nonne
@LeakyNun; Nett! Möchten Sie dies in eine Antwort einfügen? Ich würde es auf jeden Fall akzeptieren.
digitalis_
6
@closevoter Fragen mit Tipps zum
user8397947
@downvoter; Könnten Sie bitte einen Kommentar hinterlassen, der erklärt, warum Sie abgestimmt haben?
digitalis_

Antworten:

10

~In golfscript gibt es einen Operator , der Folgendes ausführt : bitwise not, dump, eval.

Daher "1"wird die Zeichenkette geben , "1"während "1"~wird die Zeichenfolge auszuwerten (in die ganze Zahl 1).

Dann müssen Sie nur noch tun "1"~7+.

Probieren Sie es online aus!

Undichte Nonne
quelle
5
Es ist erwähnenswert, dass dies ein evalGolfscript-Code ist, was "1.0"~bedeutet , dass z . B. etwas Unerwartetes getan wird .
Lynn