Contrainte d'une chaîne à un entier dans GolfScript


12

GolfScript contraint automatiquement les valeurs, selon la séquence de «priorité» suivante:

entier → tableau → chaîne → bloc

(du plus bas au plus élevé.)

Cela signifie que "1"7+laisse la chaîne "17"sur la pile (et non 8), car les chaînes ont une priorité plus élevée que les entiers.

[ À ces vétérans de GolfScript - des excuses pour avoir insulté vos intelligences respectives. ]

Comment serait-il possible de procéder autrement? Autrement dit, pour contraindre une chaîne en un entier ?


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

Cela donne 8.
Leaky Nun

@LeakyNun; Agréable! Voulez-vous vouloir mettre cela dans une réponse? Je l'accepterais certainement.
digitalis_


@downvoter; pourriez-vous s'il vous plaît laisser un commentaire expliquant pourquoi vous avez voté contre?
digitalis_

Réponses:


10

Il y a un opérateur ~dans golfscript, qui effectue les opérations suivantes: bitwise not, dump, eval.

Par conséquent, "1"donnera la chaîne "1"tandis que "1"~évaluera cette chaîne (dans l'entier 1).

Ensuite, tout ce que vous devez faire est "1"~7+.

Essayez-le en ligne!


5
Il convient de mentionner qu'il s'agit d'un evalcode de golf, ce qui signifie, par exemple, "1.0"~fait quelque chose d'inattendu.
Lynn
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.