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


12

Cheddar

Cheddar là ngôn ngữ lập trình hướng đối tượng, chức năng + cấp cao được tạo bởi người dùng của chúng tôi, Downgoat được thiết kế để giúp lập trình dễ dàng hơn, nhanh hơn và trực quan hơn.

Bạn có lời khuyên chung nào cho việc chơi golf ở Cheddar? Tôi đang tìm kiếm những ý tưởng có thể áp dụng cho vấn đề về và ít nhất cũng hơi cụ thể đối với Cheddar (ví dụ: "Xóa khoảng trắng không cần thiết." Không phải là một câu trả lời).

Câu trả lời:


3

Sử dụng thuộc tính chức năng

Nếu bạn từng sử dụng chỉ một thuộc tính trong hàm:

A->A.long.property(n).foo.bar

Bạn có thể sử dụng các thuộc tính chức năng để lưu một số byte:

@.long.property(n).foo.bar

Bạn có thể tham chiếu biến trong thuộc tính chức năng với $0.


2

Sử dụng toán tử chuỗi cho chuỗi chuỗi

Tôi đang nói về @"toán tử làm những việc khác nhau, tất cả đều xử lý các chuỗi. Điều này có khá nhiều công dụng nhưng đây là một trong những cách sử dụng yêu thích của tôi:

Hãy xem này:

@" [103, 111, 97, 116, 115] === "goats"

không hữu ích nhưng ngược lại là:

@"'goats' === [103, 111, 97, 116, 115]
'goats'.bytes // compare the above too

Điều này đặc biệt hữu ích để tạo bảng chữ cái :

65@"90    // Uppercase Alphabet
97@"122   // Lowercase Alphabet
65@"90+97@"122 // Both cases
String.letters // Compare 97@"122 to this

1

Cà ri

Không không cà ri đỏ (những gì cà ri khác bạn sẽ nghĩ về ¬_¬). Ý tôi là loại cà ri này:

a->b->

Nếu bạn có một hàm lấy hai đối số. Cà ri ngắn hơn so với không:

(a,b)->
a->b->

Lưu ý: Điều này chỉ ngắn hơn khi bạn có chính xác hai đối số.


1

Sử dụng đối số mặc định

Khai báo các biến Cheddar có thể khá là bộ lọc byte:

->{var a=b+1}

may mắn thay, bạn có thể (ab) sử dụng các giá trị mặc định của hàm để tạo biến:

b=a+1->b

Dưới đây là một số ví dụ về việc sử dụng:

let f= (a,b=a+1)->b
f(5) // 6

let f= a=Math.rand()->a
f() // 0.8757450950797647

1

Sử dụng các toán tử có chức năng và liên kết

Đây là một trong những đơn giản. Nếu bạn có bất cứ điều gì như:

i->1+i

hoặc bất kỳ hoạt động tương tự. Bạn có thể rút ngắn bằng cách sử dụng các toán tử có chức năng + liên kết:

1&(+)

1

Sử dụng toán tử ánh xạ

Các =>bản đồ LHS đến RHS, do nó được ưu tiên, điều này cũng có nghĩa là bạn có thể sử dụng nó với các phạm vi và sử dụng nó nhiều lần:

a=>f
(a).map(f)

Ngoài ra:

a=>f=>g           // This is equivilant to...
(a).map(f).map(g) // this
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.