Coaccionar una cadena a un entero en GolfScript

12

GolfScript coacciona automáticamente los valores, de acuerdo con la siguiente secuencia de 'prioridad':

entero → matriz → cadena → bloque

(listado de menor a mayor)

Esto significa que "1"7+deja la cadena "17"en la pila (y no 8), porque las cadenas tienen una prioridad más alta que los enteros.

[ A esos veteranos de GolfScript: disculpas por insultar sus respectivas inteligencias. ]

¿Cómo sería posible hacer esto de otra manera? Es decir, ¿ forzar una cadena en un entero ?

digital_
fuente
name:~ args:1 functions:bitwise not, dump, eval
Leaky Nun
Esto da 8.
Leaky Nun
@LeakyNun; ¡Agradable! ¿Quieres querer poner esto en una respuesta? Ciertamente lo aceptaría.
digitalis_
@downvoter; ¿podría dejar un comentario explicando por qué ha votado en contra?
digitalis_

Respuestas:

10

Hay un operador ~en golfscript, que hace lo siguiente: bitwise not, dump, eval.

Por lo tanto, "1"dará la cadena "1"mientras "1"~evaluará esa cadena (en el entero 1).

Entonces, todo lo que necesitas hacer es "1"~7+.

Pruébalo en línea!

Monja permeable
fuente
55
Vale la pena mencionar que este es un evalcódigo de golfscript, lo que significa, por ejemplo, que "1.0"~hace algo inesperado.
Lynn