我正在尝试创建一组int:
列表récolte :: Arbre -> Set [Int]
但是在尝试实现récolte函数时遇到了解析器错误。 错误包含3个列表的“联合”的行;每个列表包含一组[Int]。
这是代码:
récolte :: Arbre -> Set [Int]
récolte a =
let fun :: Arbre -> [Int] -> Set [Int]
--retourner essai res+2 enf
fun (Feuille 1 []) _ = singleton [1]
--les branches 0 sont des partitions en 2 => que 2 enfants
fun (Branche 0 ys@(y1:y2:[])) acc =
---> unions ( [singleton ([valeur y | y <- ys] ++ acc) ++
---> [fun y1 (acc ++ [valeur y2] )] ++
---> [fun y2 (acc ++ [valeur y1] )])
fun (Branche _ ys) acc = unions [fun y acc | y <- ys] --branche i ys
listWithDoubles = fun a [] -- enlever doublons
in map (\liste -> sort liste ) listWithDoubles
你看到解析器错误吗?我不认为有必要理解这个函数的意思来调试它,虽然我知道它的意思但是看不到错误!
我认为可能要添加的内容:int的列表集应该知道如何排序整数列表(使用比较)但我不确定它,它不应该产生解析器错误.. 。
也许你能够帮助我!
编辑:
解决!有2个错误:其中一个缩进联合与乐趣声明在同一列,在“acc”之后必须有一个结束括号。 无论如何,谢谢你在不知道它的作用的情况下解决错误并不容易!