2013-03-23 77 views
-4

問題已解決。問題是我忘記在「更改」不可變變量時使用let語句。OCaml查找元素列表中的新元素

+0

@JeffreyScofield是現貨。你也可以問自己,如果(h = e)然後'這個'e'是什麼。 – didierc 2013-03-23 18:37:34

+3

請保留原始問題,以便將來的讀者能夠理解答案。告訴你的問題解決了的stackoverflow方法是接受一個答案,你做了。 – jrouquie 2013-03-24 10:42:03

回答

3

你在這裏使用你的命令性反應太多了。這些OCaml行:

index = pos 
pos = pos + 1 

正在計算布爾值,而不是賦值給變量。你不能在OCaml中給一個變量賦值(就像這樣)。變量是不可變的。寫在OCaml的這些行的慣用方式是這樣的:

let index' = pos in 
let pos' = pos + 1 in 
index_helper t element index' pos' true 

這裏有其他錯誤,但是這在我看來是先弄清楚事情。