こんにちは、エースは 1 または 11 になる可能性があるため、ハンドの合計に問題があります。ハンド、つまり [カード] を取り、合計値を計算する関数を作成するにはどうすればよいですか?
これが私がこれまでに持っているものです:
handValue :: [Card]->[Int]
handValue [] = 0
handValue (x:xs) = sum((val x)++([handValue xs]))
ここで、val は既に定義されており、カードから値の配列を返します。例 val ("Ace","Hearts") は [1,11] を返します val ("Five","Hearts") は [5] を返します
任意のポインタをいただければ幸いです。
編集:duplodesの提案の後、私はこれを持っています:
handValue :: [Card]->[Int]
handValue [] = 0
handValue (x:xs) =
if (val x ==[1,11])
then (map sum (sequence [[1,11], handValue xs]))
else [ sum [(val x)]++([handValue xs])]