2

可能性を探るためだけに、独自の最小関数を作成するつもりでした (Haskell は初めてです)。

minimum' :: (Ord a) => [a] -> a
minimum' [] = error "empty set - no minimum"
minimum' (x:xs) = if (x <= minimum' xs) then x

問題は、パーサーエラーが発生することです:

(インデントが正しくないか、ブラケットが一致していない可能性があります)

ここで何が問題なのか知っている人はいますか?この再帰的なアプローチは可能ですか?

ご回答ありがとうございます。

4

3 に答える 3

5
if (x <= minimum' xs) then x

haskell では、if/else コンストラクト全体が値を返さなければならないため、if に対応する else が必要です。

また、Amos Robinson は次のように良い点を指摘しています。

minimum' [] = error "empty set - no minimum"

minimum'再帰が空のリストで呼び出されるとエラーになります。練習のために自分でこれを行っているので、修正しようとはしませんが、覚えておいてください。

于 2013-08-08T22:34:24.133 に答える