0
我有遞歸函數,當然樹如何通過遞歸函數的值樹
type tree = Node of bool ref * (char * tree) list ref
type cours= tree ->char list -> char list* char list * tree
let cours t word=
let rec cours_tree t word l1 l2=match t,word with
| Noeud(r,n),[] -> Noud (r,n), l1 , l2
| Noeud (r,n),x::h when (List.mem_assoc x !n) ->
x::l1,cours_tree (List.assoc x !n) h l1 l2
| Noeud (r,{content=(c,b)::n),x::h ->
x::l2,cours_tree (List.assoc x b) h l1 l2
in
cours_tree t word [] []
我希望它可以從人物的特定列表瀏覽樹的分支,並返回子樹到達,人物名單和那些無法到達的人的名單; 但我發現了一個錯誤:
Error: This expression has type char list * 'a
but an expression was expected of type 'a
The type variable 'a occurs inside char list * 'a#
我不知道哪裏是我的問題。
你爲什麼要取消IVG的編輯?這個'Noud'是什麼?如果我把它改成'Noeud',我沒有你的錯誤,我有一個語法錯誤:'Syntax error:pattern expected' here:'Noeud(r,{content =(c,b):: n),' 。 請編輯你的代碼,這樣人們可以得到你有錯誤,如果你想要一個答案。 – Lhooq