olarak bir şema ile ilgili sorum var * let ifade edilmesi. Daha kesin olmak gerekirse, “normal” hakkında merak etmeme izin vermem, ama izin verme * ile başka bir ifade ifadesini kullanalım.bir lambda ifadesi olarak * biz izin uygulamak nasıl bir lambda ifadesi (değil düzenli let)
5
A
cevap
5
let*
formu iç içe lambda
s dizisidir. Örneğin, bu:
(let* ((a 10)
(b (+ 10 a)))
(+ a b))
bu eşdeğerdir mi:
((lambda (a)
((lambda (b)
(+ a b))
(+ 10 a)))
10)
+0
Cevabınız için teşekkürler, şimdi çok anlam ifade ediyor! –
4
bir let*
o zaman cevap olacak let
dönüştürülebilir eğer, 'normal' let
merak edilmez yana . (R5RS, sayfa 44, (define-syntax let* ...)
bakınız)
(let ((a ...))
(let ((b ...))
(let ((c ...))
body ...)))
:
(let* ((a ...) (b ...) (c ...)) body ...)
eşdeğerdir: Dolayısıyla biliyoruz. Şimdi, bu verilen ve bilgi bu: Yukarıda gösterdi olur let*
ait
((lambda (a) body ...) ...)
'genişleme':
(let ((a ...)) body ...)
eşdeğerdir
((lambda (a)
((lambda (b)
((lambda (c)
body ...)
<c-init>))
<b-init>))
<a-init>)
onay bunu: http://stackoverflow.com/questions/15003518/confused-by-the-difference-between-let-and-let-in-scheme/15006018#15006018 –
Bağlantı için teşekkürler! –