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 がいかに怠惰であるかを考えると、Haskell でそれを行う適切な方法があると思いますが、どこを見ればよいかわかりません。