, ben kitabın Jon Skeet ile Tomas Petriček tarafından Gerçek Dünya Fonksiyonel Programlama rastladı bu örneği var. Ama buradakullanarak F # bir ağaç işleme continuations
type IntTree =
| Leaf of int
| Node of IntTree * IntTree
let rec sumTreeCont tree cont =
match tree with
| Leaf(n) -> cont(n)
| Node(left, right) ->
sumTreeCont left (fun leftSum ->
sumTreeCont right (fun rightSum ->
cont(leftSum + rightSum)))
Tamam bazı ayrıntılı yardım istemek gerekir böylece iplik bu gerçekten var başım .. ben ... Kendimi anlamaya mümkün olmuştur İkinci dallanma öncelikle sol tarafını işlemek ne Düğüm ve bir lambda geçirin. Bu lambda, taban alanı tarafından çağrılacak olan iki alanla, right: IntTree
ve cont: (int -> 'a)
ile bir kapatma sınıfı oluşturacaktır. Ama o zaman "iç lambda" leftSum
'u yakalar ama bütün bunların nasıl bir araya geldiğini tam olarak anlayamıyorum, bunu anlamaya çalıştığımda biraz başım dönüyor olduğumu itiraf etmeliyim.
ederim (devamlılık içerir) catamorphisms Brian McNamara'nın blog dizisi https://lorgonblog.wordpress.com/?s=catamorphism –