0

このコードを実行しているときに、本当に混乱した質問があります

data Tree a = Nil | Node a (Tree a) (Tree a)
type IntTree = Tree Int
type Counter = State Int

withCounter::Int -> Counter a -> a
withCounter init f = fst(runState f init)

nextCount::Counter Int
nextCount = do
    n <- get
    put (n+1)
    return n

incTree::IntTree -> IntTree
incTree tree = withCounter 1 (IncTree' tree)
incTree' Nil = return 0
incTree' (Node l e r) = do
    newl <- incTree' l
    n <- nextCount
    newr <- incTree' r
    return (Node newl (e+n) newr)

エラーは次のとおりです。

parse error on input '<-'

27行目、つまり「n <- nextCount」で発生しているように見えます

このエラーが発生する理由を誰かが知っていますか? ありがとう !

4

1 に答える 1

4

コードを直接コピーして貼り付けていないように見えるので、おそらくタブ文字とスペースが混在している可能性があります。

タブは使用しないでください。スペースのみを使用してインデントします。

于 2012-09-19T11:02:51.177 に答える