Şemada, tanımlamamda iç içe geçmiş lambda ifadeleri için define/lambda shorthand işlevinden nasıl yararlanabilirim?Şema tanımlaması/kısa açıklama
Aşağıdaki prosedür Verilen örnek için...
(define add
(lambda (num1 num2)
(+ num1 num2)))
biri bu kadar kısaltın edebilirsiniz:
Ancak(define (add num1 num2)
(+ num1 num2))
, ben benzer aşağıdaki işlevi kısaltmak nasıl?
(define makeOperator
(lambda (operator)
(lambda (num1 num2)
(operator num1 num2))))
;example useage - equivalent to (* 3 4):
((makeOperator *) 3 4)
Teşekkürler - Oylama limiti sıfırlandıktan sonra + 1'leyeceğim :). http://www.scheme.com/tspl2d/start.html#g1642 - biraz aşağı kaydırırsanız, yazar tanımları kısaltmak için bir tür nokta sözdizimi hakkında konuşuyor gibi görünüyor. Ne hakkında konuştuğunu biliyor musun? – Cam
@incrediman: Evet, o (arg (f. Xs) ...) 'den bahsetmektedir, ki bu da keyfi argüman sayısıyla f'yi aramanıza izin verecektir (örn. (F 1 2 3 4 5)') ve ' xs, bu argümanları içeren bir liste olacaktır. – sepp2k
Ahhh. Gotcha - teşekkürler. Bu aslında oldukça yararlı, bu yüzden ben sordum :) – Cam