好的,对不起伙计们,我再来一次x) 该函数应该在 coord 指定的坐标处替换 dt (二叉树)的子树(如[0; 1; 0; 0]]子树 nt ,其中0表示向左,1表示相反)。 顺便说一下,子函数返回具有指定坐标的子树。 我收到了语法错误
else if (List.hd coord)=0 then edit l coord nt
Error: Syntax error
#
我真的不知道为什么:S 非常感谢:)
let rec edit dt coord nt =
match dt with
Decision(choiceL, costL, l, choiceR, costR, r) -> if (sub dt coord)=l then Decision(choiceL, costL, nt, choiceR, costR, r)
else if (sub dt coord)=r then Decision(choiceL, costL, l, choiceR, costR, nt)
else if (List.hd coord)=0 then edit l coord nt
else edit r coord nt
| Chance(eventL, probL, l, eventR, probR, r) -> if (sub dt coord)=l then Chance(choiceL, costL, nt, choiceR, costR, r)
else if (sub dt coord)=r then let Chance(choiceL, costL, l, choiceR, costR, nt)
else if (List.hd coord)=0 then edit l coord nt
else edit r coord nt
| Outcome value -> raise (Arg.Bad ("Bad argument"))
;;
答案 0 :(得分:0)
我说你只需要摆脱那里的额外let
。