Trong clojure, tôi muốn biết sự khác nhau giữa ba bên dưới là gì.Trong Clojure, sự khác biệt giữa chức năng, chức năng trích dẫn và hàm trích dẫn sắc nét
(println (map + '(1 2 3) '(4 5 6)))
(println (map '+ '(1 2 3) '(4 5 6)))
(println (map #'+ '(1 2 3) '(4 5 6)))
Kết quả là
(5 7 9)
(4 5 6)
(5 7 9)
Tôi không thể hiểu được hành vi thứ hai của.
Tôi cảm thấy cái đầu tiên và cái thứ ba giống nhau trong clojure là Lisp-1 và không phân biệt giữa việc đánh giá biến và hàm được đặt tên giống nhau.
Đây có thể là câu hỏi cơ bản, nhưng dường như không đủ thông tin. Xin hãy dạy tôi.
Cảm ơn.
Ngoài ra, trong clojure, nó là thành ngữ để mô tả các chuỗi ký tự bằng vectơ thay vì danh sách được trích dẫn. –
Ồ, tôi hiểu rồi. Cảm ơn, Alex. –