เคล็ดลับสำหรับการเล่นกอล์ฟใน Jolf


12

Jolfเป็นภาษาที่ใช้ในการตีกอล์ฟโดย @ CᴏɴᴏʀO'Bʀɪᴇɴ

คุณมีเคล็ดลับอะไรสำหรับการเล่นกอล์ฟใน Jolf?

กรุณาโพสต์หนึ่งเคล็ดลับต่อคำตอบ

เคล็ดลับเหล่านี้ควรมีความเฉพาะเจาะจงกับ Jolf อย่างน้อยเช่นลบความคิดเห็นเป็นคำตอบ แต่ไม่ใช่คำตอบที่ดีมาก


ยินดีต้อนรับสู่เว็บไซต์โปรดอ่านหน้าวิธีการถามและหน้าทัวร์สำหรับข้อมูลเพิ่มเติม
Rɪᴋᴇʀ

คำตอบ:


4

จาวาสคริปต์ถอยกลับ

หากมีเหตุผลแปลก ๆ ที่ Jolf ไม่กล้าพอหรือไม่สามารถรับมือได้อาจเป็นประโยชน์ในการใช้ JavaScript eval สิ่งนี้สามารถเกิดขึ้นได้หนึ่งในสองวิธี

1. ออกแบบ eval

สิ่งที่อยู่ภายใน$...$นั้นจะถูกขนย้ายไปยัง JS transpilation อย่างแท้จริง ยกตัวอย่างเช่น+3$~$5transpiles add(3, ~5)ไป อย่างเท่าเทียมกัน, +3:~5.

2. Array eval

คุณสามารถใช้อาร์เรย์ JS ใน Jolf! ส่วนใหญ่ มันเป็นข้อผิดพลาด แต่ฉันจะไม่แก้ไข ตัวอย่างเช่น:

u[3*5,5/6,(3+4)/5]

ส่งไปที่:

sum([2 * 3, 5 / 3, (3 + 4) / 5]);

1
ถ้าด้วยเหตุผลแปลก ๆ Jolf มีความกล้าพอ (... ?)
Erik the Outgolfer

@EriktheOutgolfer ไม่ใช่ **
Conor O'Brien

7

รู้ว่าตัวแปรกำหนดอัตโนมัติของคุณ!

Jolf มีหลายวิธีในการตัวแปร "กำหนดอัตโนมัติ" มาตรฐานหนึ่งคือγซึ่งรับค่าของนิพจน์ถัดไป Βเป็นสิ่งเดียวกัน แต่แปลงนิพจน์ถัดไปเป็นตัวเลข

นอกจากนี้(ซีต้า) ζเป็นตัวแปรที่เริ่มต้นด้วย-1/12(เดาว่าทำไม) และสามารถกำหนดใหม่ด้วยΖ(Zeta)

ตัวอย่างเช่นสมมติว่าคุณต้องการเปรียบเทียบI(อินพุตสตริง) กับการดำเนินการผ่านตัวมันเอง I + I = reverse(I + I)สำหรับตอนนี้ขอดูว่า นี่เป็นลายลักษณ์อักษรตามอัตภาพ:

=+II_+II

แต่นี่สามารถ golfed ลงไปที่:

=γ+II_γ

-1/12 ซีตาของคุณเกี่ยวข้องกับทฤษฎีสตริงหรือไม่? ฉันรู้วิธีเพิ่มจำนวนธรรมชาติทุกอันและรับ -1/12
DeepDeadpool

1
@ GheyPhistor ทฤษฎีสตริงใด? แต่ใช่ว่าฟังก์ชันซีตาเหนือตัวเลขธรรมชาติคือ -1/12
Conor O'Brien

6

ใช้ @

@คือคำสั่งที่ใช้อักขระถัดไปในซอร์สโค้ดและส่งคืนจุดโค้ดของอักขระนั้น (ตัวอย่างเช่น@Xส่งคืน 88) ซึ่งมักจะมีประโยชน์มากเนื่องจากคุณสามารถแสดงตัวเลขใด ๆ ระหว่าง 0 ถึง 255 ในสองไบต์


"ระหว่าง 100 และ 255"
Leun Nun

@KennyLau ใน Jolf 10จริงๆแล้วเป็นตัวเลข1และ0ไม่ใช่ตัวเลข10ดังนั้นมันจึงเหมือนกับ 10-255
สปาเก็ตตี้

ฉันเห็นแล้วขอบคุณ ..
แม่ชีที่รั่ว

4

อ่านแหล่งที่มา

ณ ตอนนี้มีหลายสิ่งที่ไม่มีเอกสาร - mโมดูลลึกลับในหมู่พวกเขาซึ่งมีสิ่งก่อสร้างมากมาย อย่างไรก็ตามมันมีอยู่ในแหล่งข้อมูลและมันก็ไม่ยากที่จะอ่านเมื่อคุณได้รับมันดังนั้นอ่านแหล่งที่มา


1
mysterious mโมดูล ATH
Conor O'Brien

1
module (อีก 6 ไป ... )
แม่ชี Leaky

2

เพิ่มฟังก์ชั่น Arity

ทุกฟังก์ชั่นมี 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 ของตัวละครถัดไป

อะไรคือข้อได้เปรียบของ*+~θมากกว่า*θ+?
user253751

@immibis ไม่มีในกรณีนั้นมันเป็นเพียงตัวอย่างเท่านั้น มีฟังก์ชั่นบางอย่างใน Jolf ที่ผ่านสองฟังก์ชันเมื่อวิเคราะห์คำ จากนั้นวิธีเดียวที่จะเข้าถึง arity ~<char>ฟังก์ชั่นชั้นนำของใช้
Conor O'Brien

2

ใช้ประโยชน์จากอินพุตโดยปริยาย

หากฟังก์ชั่นมีอาร์กิวเมนต์ไม่เพียงพอฟังก์ชันจะค้นหาอินพุตสำหรับส่วนที่เหลือของอาร์กิวเมนต์ ตัวอย่างเช่น:

+uz

จะ transpile ไปที่:

add(sum(unaryRange(x)), x)

มันเทียบเท่ากับ

+uzxx

1

ใช้oสำหรับเก็บค่า

คล้ายกับภาษาอื่น ๆ สามารถกำหนดตัวแปรเพื่อความสะดวกในการอ้างอิง / สั้น Jolf oมี

ตัวอย่างเช่นoThxพิมพ์อินพุตบวก 1

นี่เป็นตัวอย่างที่ไร้ประโยชน์ แต่เมื่อการแสดงออกมีความซับซ้อนมากกว่าhxก็สามารถบันทึกไบต์ที่ร้ายแรงบางอย่าง

นอกจากนี้ยังv"var name"<val>อนุญาตให้ใช้ชื่อตัวแปรแบบหลายอักขระและV"var name"รับตัวแปรจากขอบเขต

ขอบคุณ Conor ที่อธิบายเรื่องนี้ให้ฉันและให้ประโยคก่อนหน้า


นอกจากนี้โปรดทราบว่าv"var name"<val>อนุญาตให้ใช้ชื่อตัวแปรแบบหลายอักขระและV"var name"รับตัวแปรจากขอบเขต
Conor O'Brien

@ CᴏɴᴏʀO'Bʀɪᴇɴโอ้นั่นคือสิ่งที่พวกเขาทำ กำลังเพิ่มไปยังโพสต์
Rɪᴋᴇʀ

2
o ขอบคุณสำหรับเคล็ดลับนี้: P
Downgoat

@ EᴀsᴛᴇʀʟʏIʀᴋมันเป็นปุนในoการเป็นตัวแปรมอบหมาย
Conor O'Brien

@ CᴏɴᴏʀO'Bʀɪᴇɴ o, ใช่ ....
Rɪᴋᴇʀ
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.