0
私はHaskellの初心者です。これはhaskellの簡単な質問です。Haskellでs i vがs [v | - i]を返す関数 "update"
私は、 update s i v
が状態更新s[v |-> i]
を返すように、次のシグネチャで関数更新を書き込もうとしています。すなわちv
の値をi
に更新することによってs
から得られる状態である。
私のコードはここにある:
type Num = Integer
type Var = String
type Z = Integer
type T = Bool
type State = Var -> Z
そして、何私が書くしようとしていることは機能
あるしかし、私はこれをコンパイルするとき、GHCiのが与えること
couldn't match expected type 'Z -> State' with actual type '[Char]'. The function 'v' is applied to one argument, but its type 'Var' has none
私を混乱させるのは、ここにZ -> State
が欲しくないということです。誰も私に何かヒントを与えることができますか?私はこの質問を明確にしていないとすみませます。私は昨日、Haskellのを習い始め:
update :: State -> Z -> Var -> State
update oldState i v = newState
where newState v'
| v == v' = i
| otherwise = oldState v
はのは、あなたのバージョンとの主な問題点を見てみましょう:O
をありがとう@カルステン!私は今これを理解しています。助けてくれてありがとう – newinjava
問題はありません - これがあなたの質問に答えると感じたら、それを1とマークすることを選ぶことができますので、他の人がこの質問が終わったことを見ることができます – Carsten