私は次のようなHaskellファイルを持っています:
longest::[Integer]->[Integer]->[Integer]
max a b = if length a > length b then a else b
llfs::[Integer]->Integer
llfs li = length(foldl longest group(li))
llfs([1, 2, 3, 3, 4, 5, 1, 1, 1])
これにより、最後に関数呼び出しの結果が出力されますが、ファイルを実行すると、次のエラーが発生します。
parse error (possibly incorrect indentation)
何が間違っているのかわかりません。それを修正するにはどうすればよいですか?
編集
次のように、最後の行をmain関数内に配置した後:
import List
longest::[Integer]->[Integer]->[Integer]
longest a b = if length a > length b then a else b
llfs::[Integer]->Integer
llfs li = length(foldl longest group(li))
main = print (llfs [1, 2, 3, 3, 4, 5, 1, 1, 1])
次のエラーが発生します。
C:\Users\Martin\Desktop\Haskell\Q1.hs:7:31:
Couldn't match expected type `[Integer]'
against inferred type `[a] -> [[a]]'
In the second argument of `foldl', namely `group'
In the first argument of `length', namely
`(foldl longest group (li))'
In the expression: length (foldl longest group (li))
これはもう少し難しいようです!どうすれば解決できますか?