tôi đang học Clojure, và tôi thấy chút mã này trực tuyến:Clojure điều cơ bản: đếm tần số
(count (filter #{42} coll))
Và nó, như đã nói, đếm lần xuất hiện của số 42 trong coll. #{42}
có hoạt động không? Các tài liệu Clojure trên bộ lọc nói rằng nó nên được, kể từ khi đoạn mã hoạt động như quảng cáo. Tôi không biết nó hoạt động như thế nào. Nếu ai đó có thể làm rõ điều này cho tôi, điều đó thật tuyệt. giải pháp của riêng tôi để cùng một điều này có thể đã được:
(count (filter #(= %1 42) coll))
Làm thế nào đến chức năng lọc của tôi có ngoặc và đoạn tôi tìm thấy trực tuyến có dấu ngoặc nhọn xung quanh chức năng lọc (#(...)
vs #{...}
)?
Bạn đã thấy câu trả lời này chưa? http://stackoverflow.com/questions/3249334/test-whether-a-list-contains-a-specific-value-in-clojure – Jonas
Không, tôi chưa thấy câu trả lời đó. Tôi có thể thấy rằng họ cũng đang sử dụng các mã tương tự. Cũng có đề cập rằng '(# {x} x)' trả về 'x'. Tôi không hiểu '# {x}' đang làm gì như một hàm. Đó không phải chỉ là một bộ? – vim
Xem câu trả lời của tôi. Một bộ không chỉ là một bộ - trong số những thứ khác nó là một IFN để bạn có thể coi nó như một hàm. – pete23