Coagindo uma string a um número inteiro no GolfScript

12

O GolfScript coage automaticamente os valores, de acordo com a seguinte sequência de 'prioridade':

número inteiro → matriz → sequência → bloco

(listado do menor para o maior.)

Isso significa que "1"7+deixa a cadeia "17"na pilha (e não 8), porque as cadeias têm uma prioridade mais alta que os números inteiros.

[ Para aqueles veteranos do GolfScript - desculpas por insultar suas respectivas inteligências. ]

Como seria possível fazer isso de outra maneira? Ou seja, coagir uma string a um número inteiro ?

digitalis_
fonte
name:~ args:1 functions:bitwise not, dump, eval
Freira vazando
Isso8.
Freira vazando
@LeakyNun; Agradável! Deseja colocar isso em uma resposta? Eu certamente aceitaria.
Digitalis_
@downvoter; você poderia deixar um comentário explicando por que você votou negativamente?
Digitalis_

Respostas:

10

Há um operador ~em golfscript, que faz o seguinte: bitwise not, dump, eval.

Portanto, "1"fornecerá a string "1"enquanto "1"~avaliará essa string (no número inteiro 1).

Então, tudo que você precisa fazer é "1"~7+.

Experimente online!

Freira Furada
fonte
5
Vale ressaltar que este é um evalcódigo de golfscript, o que significa, por exemplo "1.0"~, algo inesperado.
Lynn