2010-06-16 4 views
16

जो मैं बता सकता हूं, = और! = ओकैम में तारों पर काम करना चाहिए। मैं अजीब परिणाम देख रहा हूं हालांकि मैं बेहतर समझना चाहता हूं।ओकैम के साथ अप्रत्याशित परिणाम! =

जब मैं = के साथ दो तार की तुलना मैं करने के परिणाम मैं उम्मीद:

# "steve" = "steve";; 
- : bool = true 
# "steve" = "rowe";; 
- : bool = false 

लेकिन जब मैं कोशिश = मैं नहीं:

# "steve" != "rowe";; 
- : bool = true 
# "steve" != "steve";; (* unexpected - shouldn't this be false? *) 
- : bool = true 

किसी को भी व्याख्या कर सकते हैं? क्या ऐसा करने के लिए इससे अच्छा तरीका है?

उत्तर

19

!== की अस्वीकृति नहीं है।

# "steve" <> "rowe" ;; 
- : bool = true 
# "steve" <> "steve" ;; 
- : bool = false 
# 

!=== का निषेध है, और अगर आप एक OCaml शुरुआत कर रहे हैं, तो आप अभी तक इन दोनों में से किसी का उपयोग नहीं किया जाना चाहिए: <>= का निषेध है कि आप का उपयोग करना चाहिए है। वे थोड़ा मुश्किल हो सकते हैं, और वे आधिकारिक तौर पर अनिर्धारित हैं (केवल गारंटी यह है कि यदि दो मान == हैं तो वे = हैं)।

+2

कुछ सवाल पहले कुछ subtleties को शामिल किया गया। http://stackoverflow.com/questions/1412668/does-have-meaning-in-ocaml – nlucaroni