में ऑर्डर किए गए संस्करण प्रकार और उपप्रकार मैं वर्तमान में ओकैमल में कुछ महजोंग हैंड प्रोसेसिंग करने की कोशिश कर रहा हूं और शुरुआत से ही मुझे कुछ ऐसी चीजों से सामना करना पड़ रहा है जो मुझे बग करता है।OCaml
मैं आपको कार्ड के आधार पर उदाहरण दूंगा क्योंकि मैं किसी को महजोंग शब्दावली से भ्रमित नहीं करना चाहता हूं।
बस इस part on User-Defined Types from OCaml for the Skeptical में, मैं सूट, कार्ड और सबकुछ का वर्णन करने के लिए भिन्न प्रकारों का उपयोग करना चाहता हूं।
type suit = Club | Diamond | Heart | Spade
type value = Jack | Queen | King | Ace | Num of int
type card = Card of suit * value | Joker
type hand = card list
और यह वास्तव में अच्छा होगा अगर मैं एक स्मार्ट compare
समारोह है कि भिन्न प्रकारों का आदेश दिया समझना होगा लिख सकता होगा।
आदर्श रूप में मैं ऐसा ही कुछ लिखना चाहते हैं:
type suit = Club < Diamond < Heart < Spade
type value = Num of int < Jack < Queen < King < Ace
type card = Card of suit * value < Joker
type hand = card list
ताकि जब मैं
List.sort Pervasives.compare [Card(Diamond, Num 3); Joker; Card(Spade, Ace); Card(Diamond, Num 2)]
कर यह मेरे
[Card(Diamond, Num 2); Card(Diamond, Num 3); Card(Spade, Ace); Joker]
ओह, ocaml उच्चस्तरीय रिटर्न देता है
[Joker; Card(Spade, Ace); Card(Diamond, Num 2); Card(Diamond, Num 3)]
(जो पहले से ही काफी अच्छा है!)
मूल रूप से मैं एक compare
समारोह है कि प्रकार घोषणा संरचना से संकेत ले जाएगा चाहते हैं।
मैंने यह article on polymorphic compare और this similar question पढ़ा है, लेकिन मुझे यकीन नहीं है कि मैं compare_val
पर निर्भर होना चाहता हूं।
क्या मुझे वास्तव में अपना खुद का तुलना फ़ंक्शन लिखना है? यदि आप मुझे एक लिखने की सलाह देते हैं, तो क्या आपके पास लिखे जाने वाले तरीकों पर सुझाव हैं, खासकर मामलों की संख्या को कम करने के लिए? के बारे में deriving(Ord)
हास्केल में
पी.एस .: मैं सिर्फ सुना ... पर्याप्त मुझे छलांग लेने के लिए हो सकता है ...
मुझे हास्केल से प्यार है, लेकिन मैं केवल 'व्युत्पन्न' चीनी के लिए ओकैमल पर जहाज नहीं कूदूंगा। विशेष रूप से इस प्रकार के लिए एक छोटे से। – jozefg
यह भी अच्छा होगा अगर न्यूम को 1.10 – aneccodeal
@aneccodeal yep से बाधित किया जा सकता है, किसी दिन हम मुख्यधारा की भाषा में निर्भर प्रकार प्राप्त करेंगे। – paob