Lời khuyên cho việc chơi golf ở Jolf


12

Jolf là một ngôn ngữ chơi gôn theo thủ tục được thực hiện bởi @ CᴏɴᴏʀO'Bʀɪᴇɴ.

Bạn có lời khuyên nào cho việc chơi golf ở Jolf?

Xin vui lòng gửi một lời khuyên cho mỗi câu trả lời.

Những lời khuyên này ít nhất phải có phần cụ thể đối với Jolf, ví dụ như xóa bình luận là một câu trả lời, nhưng không phải là một câu hỏi hay.


Chào mừng bạn đến với trang web, vui lòng đọc trang Cách hỏi và trang tham quan để biết thêm thông tin.
Rɪᴋᴇʀ

Câu trả lời:


4

JavaScript quay trở lại

Nếu vì một lý do kỳ lạ nào đó, Jolf không đủ sức chơi gôn, hoặc đơn giản là không thể đối phó, thì có thể sử dụng JavaScript eval. Điều này có thể xảy ra theo một trong hai cách.

1. Thiết kế eval

Bất cứ thứ gì bên trong $...$đều được chuyển sang dịch mã JS. Ví dụ, +3$~$5transpiles đến add(3, ~5). Tương đương , +3:~5.

2. mảng eval

Bạn có thể sử dụng mảng JS trong Jolf! Hầu hết. Đó là một lỗi, nhưng tôi sẽ không sửa nó. Ví dụ:

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

Dịch chuyển đến:

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

1
Nếu vì một lý do kỳ lạ nào đó, Jolf đủ chơi golf (...?)
Erik the Outgolfer

@EriktheOutgolfer không **
Conor O'Brien

7

Biết các biến tự động gán của bạn!

Jolf có nhiều cách để "tự động gán" các biến. Một tiêu chuẩn là γ, lấy giá trị của biểu thức tiếp theo. Βlà điều tương tự, nhưng chuyển đổi biểu thức tiếp theo thành một số.

Ngoài ra, ζ(zeta) là một biến được khởi tạo thành -1/12(đoán tại sao) và có thể được gán lại với Ζ(Zeta).

Ví dụ: giả sử bạn muốn so sánh I(chuỗi đầu vào) với một thao tác trên chính nó. Bây giờ, hãy xem nếu I + I = reverse(I + I). Điều này được viết là, thông thường:

=+II_+II

Nhưng điều này có thể được đánh xuống:

=γ+II_γ

Zeta -1/12 của bạn có liên quan đến lý thuyết dây không? Tôi biết một cách để cộng mọi số tự nhiên và có được -1/12
DeepDeadpool

1
@GheyPhistor Lý thuyết dây nào? Nhưng vâng, đó là hàm zeta trên các số tự nhiên là -1/12.
Conor O'Brien

6

Sử dụng @

@là một lệnh lấy ký tự tiếp theo trong mã nguồn và trả về điểm mã của ký tự đó. (Ví dụ, @Xtrả về 88.) Điều này thường rất hữu ích vì bạn có thể biểu thị bất kỳ số nào trong khoảng từ 0 đến 255 bằng hai byte.


"trong khoảng từ 100 đến 255"
Leaky Nun

@KennyLau Trong Jolf, 10thực sự là số 1và số 0không phải là số 10, vì vậy nó giống như 10-255.
một spaghetto

Tôi hiểu rồi, cảm ơn ..
Leaky Nun

4

Đọc nguồn

Tính đến thời điểm hiện tại, có rất nhiều thứ không có giấy tờ - mmô-đun bí ẩn trong số đó, có rất nhiều nội dung. Tuy nhiên, chúng tồn tại trong nguồn và thực sự không khó để đọc một khi bạn hiểu rõ về nó, vì vậy hãy đọc nguồn.


1
Các mô-đun ath mysterious m.
Conor O'Brien

1
mmùi. (6 ngày nữa để đi ...)
Leaky Nun

2

Tăng chức năng Arity

Mỗi chức năng có một arity. Ví dụ: +có số lượng là 2. Nếu bạn muốn (nói) thêm 5 phần tử, bạn có thể sử dụng 5 + s ... hoặc làm +θ12345. Đặc biệt:

  • θ 3 cụm từ arity của hàm.
  • làm tăng độ chụm của hàm cha lên 3. (Vì vậy, *+~θ345678tăng độ chụm của *3)
  • M làm tăng tính tự nhiên của hàm bằng 2.
  • ~M làm tăng tính tự nhiên của hàm cha bằng 2.
  • ; làm tăng tính tự nhiên của hàm bằng 1.
  • ~; làm tăng tính tự nhiên của hàm cha bằng 1.
  • η làm giảm độ thơm của hàm bằng 1.
  • làm giảm tính tự nhiên của hàm cha mẹ bằng 1.
  • \xad đặt mức độ ổn định của hàm cha thành ký tự của ký tự tiếp theo.

Lợi thế của *+~θhơn là *θ+gì?
dùng253751

@immibis Không có trong trường hợp đó, nó chỉ mang tính minh họa. Có một số hàm trong Jolf vượt qua hai hàm khi được phân tích cú pháp. Sau đó, cách duy nhất để truy cập tính tự nhiên của chức năng hàng đầu là sử dụng ~<char>.
Conor O'Brien

2

Tận dụng đầu vào ngầm

Nếu một hàm không có đủ đối số, nó sẽ tìm đến đầu vào cho phần còn lại của các đối số. Ví dụ:

+uz

Sẽ phiên dịch sang:

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

Nó tương đương với

+uzxx

1

Sử dụng ođể lưu trữ giá trị

Tương tự như cách các ngôn ngữ khác có thể gán các biến để tham chiếu dễ / ngắn, Jolf có o.

Ví dụ, oThx in đầu vào cộng 1.

Đây là một ví dụ vô dụng, nhưng khi biểu thức phức tạp hơn hx , nó có thể lưu một số dòng dõi nghiêm trọng.

Ngoài ra, v"var name"<val>cho phép một tên biến đa char vàV"var name" nhận một biến từ phạm vi.

Cảm ơn Conor đã giải thích điều này cho tôi và đưa ra câu trước.


Cũng lưu ý rằng v"var name"<val>cho phép một tên biến đa char và V"var name"nhận một biến từ phạm vi.
Conor O'Brien

@ CᴏɴᴏʀO'Bʀɪᴇɴ oh, vậy đó là những gì họ làm. Thêm vào bài viết.
Rɪᴋᴇʀ

2
o Thx cho mẹo này: P
Downgoat

@ EᴀsᴛᴇʀʟʏIʀᴋ Đó là một cách chơi chữ khi otrở thành biến số gán
Conor O'Brien

@ CᴏɴᴏʀO'Bʀɪᴇɴ o, yeah ....
Rɪᴋᴇʀ
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.