【发布时间】:2019-11-19 15:52:57
【问题描述】:
我对 Haskell 还是很陌生,我很好奇如何将两个 Hand 合并在一起,以便将第一只手放在第二只手之上。我希望它是一个中缀运算符,即 (
data Rank = Numeric Integer | Jack | Queen | King | Ace
data Suit = Hearts | Spades | Diamonds | Clubs
data Card = Card Rank Suit
data Hand = Empty | Add Card Hand
(<+) :: Hand -> Hand -> Hand
h1 (<+) h2 = undefined
非常感谢您提供的任何建议。
【问题讨论】:
-
提示:对于两个
Emptys,一个Empty和一个Add x y,一个Add x y和一个Empty,以及Add x y和@987654329,应该发生什么@? -
Hand是一个列表等价物,您正在尝试定义 append.... -
@karakfa 是的,没错
-
@Alex:我不明白你为什么不使用
type Hand = [Card]。那么你首先不需要实现附加功能。 -
然后问一个新问题。您特别询问了我的回答解决的类型签名错误。那么如何定义
(<+)是一个单独的问题。
标签: haskell syntax enums operators definition