2012-02-05 29 views
11

Làm cách nào để viết chức năng nhận diện trong clojure bằng cách sử dụng anonymous function literal (#())?Trong clojure, làm thế nào để viết chức năng nhận dạng bằng cách sử dụng hàm ẩn danh?

Các mã sau đây không làm việc:

(#(%) 5) 

Nó đặt ra một ngoại lệ vì nó được chuyển thành:

((fn[x] (x)) 5) 

Vấn đề ở chỗ khi sử dụng #(), chức năng cơ thể được bao bọc bằng dấu ngoặc đơn. Bất kỳ ý tưởng nào, làm cách nào để khắc phục điều này một cách thanh lịch?

Trả lời

23

Trước tiên, có chức năng identity.

Nhưng bạn có thể sử dụng

#(do %) 

nếu bạn nhấn mạnh.

+1

Câu trả lời hay. Nếu bạn biết tham số là một số, bạn cũng có thể làm # (+%) và lưu một ký tự :-) – mikera

Các vấn đề liên quan