$^//.{#}/S1//.$/
ลองออนไลน์!
รูปแบบอินพุตเป็นเช่น:
string
index
และโปรแกรมได้รับการจัดทำดัชนี 1
คำอธิบาย
แครอทมีตัวแปรทั่วโลกหลายตัวหนึ่งตัวสำหรับแต่ละประเภทคือสตริงลอยและอาร์เรย์ โปรแกรมเริ่มต้นในโหมดสตริงที่ตัวดำเนินการทั้งหมดจะมีผลกับตัวแปรสตริงส่วนกลาง และฉันเรียกตัวแปรเหล่านี้ว่า "สแต็ค"
(ตัวอย่างการป้อนข้อมูล: 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"]
ตอนนี้สิ่งนี้จะคืนอาร์เรย์หนึ่งองค์ประกอบที่มีสตริงที่มีความยาวหนึ่งรายการ แต่จะแสดงเป็นสตริงในเว็บไซต์
หากเราต้องการให้ผลลัพธ์เป็นสตริงเราสามารถทำได้อย่างง่ายดายS","ในตอนท้าย แต่มันไม่สำคัญเพราะผลลัพธ์ยังคงเหมือนเดิมในล่าม