私は関数型プログラミングとCLEANの初心者です。私はいくつかの機能を持っていますが、そのうちの 1 つにエラーが発生し、その理由がわかりません。(CLEAN に非常に似ているため、Haskell でタグ付けしました。)
私のモジュール:
module Prac
combine :: (Maybe a) (Maybe [a]) -> Maybe [a]
combine Nothing _ = Nothing
combine _ Nothing = Nothing
combine (Just d) (Just [x:xs]) = Just [d, x:xs]
sequence :: [Maybe a] -> Maybe [a]
sequence [Just x:xs] = combine (Just x) Just[xs]
シーケンス定義で失敗します。
Type error [Prac.icl,32,sequence]: near combine : cannot unify types:
[v8] -> Maybe [v4]
Maybe [v5]
どうもありがとう!!