Bir dizeyi GolfScript'te tamsayıya zorlama


12

GolfScript , değerleri aşağıdaki 'öncelik' sırasına göre otomatik olarak zorlar:

integer → dizi → dize → engelle

(en düşükten en yükseğe sıralanır.)

Bu "1"7+, dizeyi tamsayılardan daha yüksek önceliğe sahip olduğu için dizeyi "17"yığın üzerinde bırakır (değil 8) anlamına gelir .

[ Bu GolfScript gazilerine - ilgili zekanıza hakaret ettiğiniz için özür dileriz. ]

Bunu başka şekilde yapmak nasıl mümkün olabilir? Yani, bir dizgiyi tamsayıya zorlamak mı?


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

Bu verir 8.
Leaky Nun

@LeakyNun; Güzel! Bunu cevaplamak ister misin? Kesinlikle kabul ederdim.
digitalis_


@downvoter; Lütfen neden aşağı indirdiğinizi açıklayan bir yorum bırakabilir misiniz?
digitalis_

Yanıtlar:


10

Bir operatör var ~şunları yapar golfscript içinde,: bitwise not, dump, eval.

Bu nedenle, "1"dizeyi "1"verirken "1"~o dizeyi değerlendirir (tamsayıya 1).

O zaman tek yapmanız gereken "1"~7+.

Çevrimiçi deneyin!


5
Bunun bir evalgolfscript kodu olduğunu belirtmek gerekir , yani "1.0"~beklenmedik bir şey yapar.
Lynn
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.