$^//.{#}/S1//.$/
Çevrimiçi deneyin!
Giriş biçimi şöyledir:
string
index
Ve program 1 endekslidir.
açıklama
Havuç, her tür için bir tane olmak üzere çeşitli küresel değişkenlere sahiptir: dize, kayan nokta ve dizi (diğerleri yakında uygulanacaktır). Program, tüm işleçlerin genel dize değişkenini etkileyeceği dize modunda başlar. Bu değişkenlere "yığın" diyorum.
(Örnek giriş: abcdef\n3)
$ Get the first line of the input and set the stack-string to this value
^ Exit caret-mode
stack-string = "abcdef"
/ Operator (behaves differently depending on the argument)
/.{#}/ And the argument to this operator is a regex, so this program gets the matches of this regex into the stack-array
. Any character
{#} Pops a line from the input. So now this evaluates to # of any character where # is the second line of the input (in this case, 3)
stack-array = ["abc"]
And now we just need to get the last character in this string, but first
S1 Join the array on the number 1 and set this to the stack-string. Because the array only contains one element, the number 1 does not appear in the stack-string.
stack-string = "abc"
/ Operator; because the argument is a regex, this retrieves the matches of the regex:
/.$/ Get the last character in the string
stack-array = ["c"]
Şimdi bu, bir uzunluklu bir dize içeren bir öğe dizisi döndürür, ancak web sitesinde bir dize olarak gösterilir.
Sonucu gerçekten bir dize olarak vermek istiyorsak S",", sonunda kolayca yapabiliriz , ancak önemli değil çünkü çıktı hala yorumlayıcıda aynı görünüyor.