Jolfเป็นภาษาที่ใช้ในการตีกอล์ฟโดย @ CᴏɴᴏʀO'Bʀɪᴇɴ
คุณมีเคล็ดลับอะไรสำหรับการเล่นกอล์ฟใน Jolf?
กรุณาโพสต์หนึ่งเคล็ดลับต่อคำตอบ
เคล็ดลับเหล่านี้ควรมีความเฉพาะเจาะจงกับ Jolf อย่างน้อยเช่นลบความคิดเห็นเป็นคำตอบ แต่ไม่ใช่คำตอบที่ดีมาก
Jolfเป็นภาษาที่ใช้ในการตีกอล์ฟโดย @ CᴏɴᴏʀO'Bʀɪᴇɴ
คุณมีเคล็ดลับอะไรสำหรับการเล่นกอล์ฟใน Jolf?
กรุณาโพสต์หนึ่งเคล็ดลับต่อคำตอบ
เคล็ดลับเหล่านี้ควรมีความเฉพาะเจาะจงกับ Jolf อย่างน้อยเช่นลบความคิดเห็นเป็นคำตอบ แต่ไม่ใช่คำตอบที่ดีมาก
คำตอบ:
หากมีเหตุผลแปลก ๆ ที่ Jolf ไม่กล้าพอหรือไม่สามารถรับมือได้อาจเป็นประโยชน์ในการใช้ JavaScript eval สิ่งนี้สามารถเกิดขึ้นได้หนึ่งในสองวิธี
สิ่งที่อยู่ภายใน$...$
นั้นจะถูกขนย้ายไปยัง JS transpilation อย่างแท้จริง ยกตัวอย่างเช่น+3$~$5
transpiles add(3, ~5)
ไป อย่างเท่าเทียมกัน, +3:~5
.
คุณสามารถใช้อาร์เรย์ JS ใน Jolf! ส่วนใหญ่ มันเป็นข้อผิดพลาด แต่ฉันจะไม่แก้ไข ตัวอย่างเช่น:
u[3*5,5/6,(3+4)/5]
ส่งไปที่:
sum([2 * 3, 5 / 3, (3 + 4) / 5]);
Jolf มีหลายวิธีในการตัวแปร "กำหนดอัตโนมัติ" มาตรฐานหนึ่งคือγ
ซึ่งรับค่าของนิพจน์ถัดไป Β
เป็นสิ่งเดียวกัน แต่แปลงนิพจน์ถัดไปเป็นตัวเลข
นอกจากนี้(ซีต้า) ζ
เป็นตัวแปรที่เริ่มต้นด้วย-1/12
(เดาว่าทำไม) และสามารถกำหนดใหม่ด้วยΖ
(Zeta)
ตัวอย่างเช่นสมมติว่าคุณต้องการเปรียบเทียบI
(อินพุตสตริง) กับการดำเนินการผ่านตัวมันเอง I + I = reverse(I + I)
สำหรับตอนนี้ขอดูว่า นี่เป็นลายลักษณ์อักษรตามอัตภาพ:
=+II_+II
แต่นี่สามารถ golfed ลงไปที่:
=γ+II_γ
@
@
คือคำสั่งที่ใช้อักขระถัดไปในซอร์สโค้ดและส่งคืนจุดโค้ดของอักขระนั้น (ตัวอย่างเช่น@X
ส่งคืน 88) ซึ่งมักจะมีประโยชน์มากเนื่องจากคุณสามารถแสดงตัวเลขใด ๆ ระหว่าง 0 ถึง 255 ในสองไบต์
10
จริงๆแล้วเป็นตัวเลข1
และ0
ไม่ใช่ตัวเลข10
ดังนั้นมันจึงเหมือนกับ 10-255
ณ ตอนนี้มีหลายสิ่งที่ไม่มีเอกสาร - m
โมดูลลึกลับในหมู่พวกเขาซึ่งมีสิ่งก่อสร้างมากมาย อย่างไรก็ตามมันมีอยู่ในแหล่งข้อมูลและมันก็ไม่ยากที่จะอ่านเมื่อคุณได้รับมันดังนั้นอ่านแหล่งที่มา
m
ysterious m
โมดูล ATH
m
odule (อีก 6 ไป ... )
ทุกฟังก์ชั่นมี arity ตัวอย่างเช่น+
มี arity 2. หากคุณต้องการ (พูด) เพิ่ม 5 องค์ประกอบคุณสามารถใช้ 5 + S ... หรือ+θ12345
ทำ โดยเฉพาะ:
θ
เพิ่ม arity ของฟังก์ชันด้วย 3~θ
เพิ่ม arity ของฟังก์ชันพาเรนต์โดย 3 (ดังนั้น*+~θ345678
เพิ่ม arity ของ*
3 โดย)M
เพิ่ม arity ของฟังก์ชันโดย 2~M
เพิ่ม arity ของฟังก์ชันพาเรนต์โดย 2;
เพิ่ม arity ของฟังก์ชันโดย 1~;
เพิ่ม arity ของฟังก์ชันพาเรนต์ 1η
ลด arity ของฟังก์ชันลง 1~η
ลด arity ของฟังก์ชันพาเรนต์โดย 1\xad
ตั้งค่า arity ของฟังก์ชันพาเรนต์เป็น charcode ของตัวละครถัดไป*+~θ
มากกว่า*θ+
?
~<char>
ฟังก์ชั่นชั้นนำของใช้
หากฟังก์ชั่นมีอาร์กิวเมนต์ไม่เพียงพอฟังก์ชันจะค้นหาอินพุตสำหรับส่วนที่เหลือของอาร์กิวเมนต์ ตัวอย่างเช่น:
+uz
จะ transpile ไปที่:
add(sum(unaryRange(x)), x)
มันเทียบเท่ากับ
+uzxx
o
สำหรับเก็บค่าคล้ายกับภาษาอื่น ๆ สามารถกำหนดตัวแปรเพื่อความสะดวกในการอ้างอิง / สั้น Jolf o
มี
ตัวอย่างเช่นoThx
พิมพ์อินพุตบวก 1
นี่เป็นตัวอย่างที่ไร้ประโยชน์ แต่เมื่อการแสดงออกมีความซับซ้อนมากกว่าhx
ก็สามารถบันทึกไบต์ที่ร้ายแรงบางอย่าง
นอกจากนี้ยังv"var name"<val>
อนุญาตให้ใช้ชื่อตัวแปรแบบหลายอักขระและV"var name"
รับตัวแปรจากขอบเขต
ขอบคุณ Conor ที่อธิบายเรื่องนี้ให้ฉันและให้ประโยคก่อนหน้า
v"var name"<val>
อนุญาตให้ใช้ชื่อตัวแปรแบบหลายอักขระและV"var name"
รับตัวแปรจากขอบเขต
o
การเป็นตัวแปรมอบหมาย