OCaml

2012-04-11 15 views
5

में ऑब्जेक्ट्स के भीतर ऑब्जेक्ट्स मैं यह पता लगाने की कोशिश कर रहा हूं कि मैं अन्य ऑब्जेक्ट्स के साथ ओकैमल ऑब्जेक्ट्स को पैरामीटर कैसे कर सकता हूं। विशेष रूप से मैं एक link वस्तु जो एक आगे node वस्तु और एक पीछे node वस्तु शामिल बनाने में सक्षम होना चाहता हूँ, और मैं कुछ ऐसा कह कर एक लिंक बनाने के सक्षम होना चाहते हैं:OCaml

let link1 = new link node_behind node_ahead;; 

उत्तर

8

वस्तुओं में सामान्य अभिव्यक्ति कर रहे हैं ओकैमल, ताकि आप उन्हें फ़ंक्शन और क्लास कन्स्ट्रक्टर तर्क के रूप में पास कर सकें। गहन स्पष्टीकरण के लिए, ओकैमल मैनुअल में related section देखें।

तो उदाहरण के लिए, आप लिख सकते हैं:

class node (name : string) = object 
    method name = name 
end 

class link (previous : node) (next : node) = object 
    method previous = previous 
    method next = next 
end 

let() = 
    let n1 = new node "n1" in 
    let n2 = new node "n2" in 
    let l = new link n1 n2 in 
    Printf.printf "'%s' -> '%s'\n" l#previous#name l#next#name