Примусовий рядок до цілого числа в GolfScript


12

GolfScript автоматично примушує значення відповідно до наступної послідовності "пріоритету":

ціле число → масив → рядок → блок

(перераховано від найнижчого до найвищого.)

Це означає, що "1"7+залишає рядок "17"у стеку (а не 8), оскільки рядки мають більший пріоритет, ніж цілі числа.

[ Тим ветеранам GolfScript - вибачте за ображення ваших відповідних інтелекту. ]

Як можна було б зробити це іншим способом? Тобто примусити рядок до цілого числа ?


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


@LeakyNun; Приємно! Ви хочете поставити це на відповідь? Я б точно прийняв це.
digitalis_


@downvoter; Ви можете залишити коментар, пояснюючи, чому Ви зробили податок?
digitalis_

Відповіді:


10

Там же оператор ~в golfscript, який робить наступне: bitwise not, dump, eval.

Тому "1"дасть рядок, "1"тоді як "1"~оцінить цей рядок (у ціле число 1).

Тоді все, що вам потрібно зробити - це "1"~7+.

Спробуйте в Інтернеті!


5
Варто зазначити, що це evalкод гольфскрипту, тобто, наприклад, "1.0"~робиться щось несподіване.
Лінн
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.