2012-05-14 23 views

cevap

7

let x x = ... yazdığınızda, bağımsız değişkenine x adını bağlayan x adlı bir işlev tanımlıyorsunuz. Eğer let yerine let rec kullanılan bu yana

, işlev böylece kadarıyla o bildiği gibi yaklaşık bilinmeye değer x tek bir argüman olarak geçirilen biridir kendi ismini bilmiyor. Eğer x 2 ile işlevini çağırdığınızda

Bu nedenle, adı x değer 2 bağlar ve sonuç olarak 3 alma, x+1 değerlendirir.

+0

Teşekkürler, bir işlev ve bir argümanın aynı ada sahip olabileceğini bilmiyordum. – bbaja42

+1

Onlar yapabilirler, ama elbette ** asla, asla gerçek kodda bunu yapmamalısınız :) (Aslında bu 'izin ver' yerine 'bırak' ile çalışır ve daha kafa karıştırıcı olma potansiyeline sahiptir. .) –

+4

Bunun niçin, 'xx = e' 'nin x = (x => e) 'yi kullanması için kestirme olduğunun farkına vardığınızda bunun neden mümkün olduğunu görmek daha kolay. –