2012-09-19 46 views
9

Trong Clojure, sự khác nhau giữa fn và fn * là gì? Tôi thấy fn * khi cú pháp trích dẫn một hàm được tạo bằng macro #. Ví dụ: trong REPL:Sự khác biệt giữa fn và fn * là gì?

user=> `#(inc %) 
(fn* [p1__342__343__auto__] (clojure.core/inc p1__342__343__auto__)) 

Điều này chỉ đơn giản được sử dụng cho mục đích gỡ lỗi để xác định rằng hàm được tạo bởi # chứ không phải trực tiếp fn?

+1

Xem http://stackoverflow.com/questions/10767305/what-is-fn-and-how-does-clojure-bootstrap – noahlz

Trả lời

17

Theo this post on google groupsfn* là một dạng nguyên thủy để tạo chức năng và fn là macro được xây dựng trên đầu trang để triển khai các tính năng cấp cao hơn như phá hoại.

+1

Cảm ơn! Đây là trong danh sách những điều cần điều tra về Clojure ... –

+1

Đây là một con chó thật sự để tìm. Googling fn * rõ ràng không hoạt động. DuckDuckGo đã đến giải cứu mặc dù :) –

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