Vì bạn đang cố gắng viết một hàm như vậy, tôi tự hỏi nếu có thể hữu ích khi chỉ ra rằng + chỉ là một hàm bình thường trong Clojure, vì nó nằm trong bất kỳ Lisp nào khác. Trong thực tế, không có "biểu thức số học" đặc biệt trong Clojure, chỉ các ứng dụng chức năng có đối số là số và có các hàm toán tử thực hiện các phép tính số học. Trên thực tế, trong hầu hết các Lisps, không có "toán tử" đặc biệt nào trong các phần cú pháp phân biệt ý nghĩa cần được bọc cho chức năng của chúng để có sẵn dưới dạng một hàm. Clojure là bất thường như một Lisp trong lĩnh vực này ở chỗ nó rõ ràng phụ thuộc vào nền tảng máy chủ của nó cho một số tính năng khá cơ bản; ví dụ. nổi exponentiation có sẵn trong vanilla Clojure trong các hình thức của pow
phương pháp của các lớp học java.lang.Math
(nhưng xem clojure.contrib.math
cho một số chức năng tốt đẹp để thực hiện các số học số khác nhau không trong clojure.core
).
Phương pháp Java sẽ phải được bao bọc trong Clojure để được sử dụng làm chức năng (ví dụ: được chuyển đến map
v.v.), vì vậy theo cách đó, chúng có thể mang đến cho người vận hành tâm từ các ngôn ngữ như C, Python hoặc thực sự Java. Chúng vẫn được gọi là sử dụng ký pháp tiền tố.
Nguồn
2010-04-30 23:42:04
Vâng, tôi đã quên. – StackedCrooked