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 ?


name:~ args:1 functions:bitwise not, dump, eval
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!


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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.