Tôi đang cố trì hoãn các phép tính khác nhau. Tôi có chức năng của các hình thức sau đây,Đối số chức năng nhiều loại
(defn a-fn [a b]
(let [a (if (fn? a)
a
#(identity a))
b (if (fn? b)
b
#(identity b))]
(+ (a) (b))))
này cho phép tôi để vượt qua một-fn, một giá trị hoặc một hàm trả về giá trị,
(a-fn 1 2)
(defn x [] 1)
(defn y [] 2)
(a-fn x y)
(a-fn x 2)
những gì tôi làm là xây dựng một danh sách các hàm (giống như ở trên) để hoạt động trên một số dữ liệu, fns có thể sử dụng các fns khác để lấy các đối số của chúng hoặc trong một số trường hợp mọi thứ không thay đổi và chúng được gán giá trị làm đối số. Tôi đã tự hỏi liệu có cách nào tốt hơn để đạt được loại hành vi này?
Tốt. Quên về sự chậm trễ/lực lượng. –