リストのすべての要素の合計を計算する次のコードがあります。末尾再帰の構文解析エラーHaskell
sum_list_tail :: [Int] -> Int
sum_list_tail (x:xs) = inc(x:xs, 0)
where inc(x:xs, a) =
if (x:xs == []) then a
else inc(xs, a+x)
私はこの問題を解決するためにテール再帰を使用しようとします。
私はこのエラーparse error (possibly incorrect indentation or mismatched brackets)
がこの行で発生していif (x:xs == []) then a
私が間違ってやっているかを調べることができません。
タブとスペースを混在させていますか?ハスケルはそれを嫌っている。またこのテスト 'x:xs == []'は定数 'False'です。おそらく、あなたが書くことを意図したものではないでしょう。 – gallais