flushPoints :: [Card] -> Integer
flushPoints cs@(c1:hd) =
if flushPointsCalc True (suitCount hd) >
flushPointsCalc False (suitCount cs)
then flushPointsCalc True (suitCount hd)
else flushPointsCalc False (suitCount cs)
假设我有一个如上所述的功能,我将如何缩短它?
我正在考虑做一个where hdFlush = flushPointsCalc True (suitCount hd)
,但我不能,因为 hd 在上面声明了。
考虑到它的懒惰程度,我觉得在 Haskell 中会有一种适当的方法,但我不确定在哪里看。