Trong Đề án, làm cách nào tôi có thể sử dụng thuật toán xác định/lambda cho các biểu thức lambda lồng nhau trong định nghĩa của tôi?Đề án xác định/tốc ký lambda
Ví dụ cho các thủ tục sau đây ...
(define add
(lambda (num1 num2)
(+ num1 num2)))
Người ta có thể rút ngắn nó như thế này:
(define (add num1 num2)
(+ num1 num2))
Tuy nhiên, làm thế nào tôi có thể rút ngắn các chức năng sau đây tương tự?
(define makeOperator
(lambda (operator)
(lambda (num1 num2)
(operator num1 num2))))
;example useage - equivalent to (* 3 4):
((makeOperator *) 3 4)
Cảm ơn - Tôi sẽ +1 cho bạn sau khi đặt lại giới hạn phiếu bầu của tôi :). http://www.scheme.com/tspl2d/start.html#g1642 - nếu bạn cuộn xuống một chút, tác giả dường như đang nói về một số loại cú pháp chấm để rút ngắn định nghĩa. Có biết anh ấy đang nói gì không? – Cam
@incrediman: Vâng, anh ấy đang nói về '(define (f. Xs) ...)' cho phép bạn gọi f với số lượng đối số tùy ý (ví dụ '(f 1 2 3 4 5)') và ' xs' sẽ là danh sách chứa các đối số đó. – sepp2k
Ahhh. Gotcha - cảm ơn. Đó là thực sự khá hữu ích chính nó, vì vậy tôi vui vì tôi hỏi :) – Cam