# Coercing a string to an integer in GolfScript

GolfScript automatically coerces values, according to the following ‘priority’ sequence:

integer → array → string → block

(listed from lowest to highest.)

This means that "1"7+ leaves the string "17" on the stack (and not 8), because strings have a higher priority than integers.

[To those GolfScript veterans – apologies for insulting your respective intelligences.]

How would it be possible to do this the other way? That is, to coerce a string into an integer?

• name:~ args:1 functions:bitwise not, dump, eval – Leaky Nun Jul 16 '16 at 18:59
• This gives 8. – Leaky Nun Jul 16 '16 at 19:00
• @LeakyNun; Nice! Do you want to want to put this in an answer? I'd certainly accept it. – digitalis_ Jul 16 '16 at 19:02
• – dorukayhan Jul 16 '16 at 19:10
There's an operator ~ in golfscript, which does the following: bitwise not, dump, eval.
Therefore, "1" will give the string "1" while "1"~ will evaluate that string (into the integer 1).
Then, all you need to do is "1"~7+.
• It's worth mentioning that this is an eval of golfscript code, meaning e.g. "1.0"~ does something unexpected. – Lynn Jul 17 '16 at 9:25