我正在Haskell中开发一个函数,其参数是一对对列表。递归地,该列表将被进一步拆分,直到基于预定义谓词满足基本情况。通常,对于更简单的数据类型,例如列表,文字可用于基本案例匹配,例如'[]'。如何使用布尔谓词应用模式匹配?
我想出的唯一方法是使用if else语句。但显然这会导致明显的问题。
模式
pure_instances [(_,_)] = True
pure_instances ((c1,_):(c2,attrs):xs) = (c1 == c2) && (pure_instances ((c2,attrs):xs))
方法
build_tree list = if (pure_instances list) then (Leaf get_label list) else (build_tree list)
build_ tree list = ...
答案 0 :(得分:1)
我认为你在找卫兵? (感谢Reid Barton)
if input == statement
if input == name: print("final %(name, fav_color, weight, height)
返回build_tree list
| pure_instances list = Leaf get_label list
| otherwise = build_tree list
时的无限循环是另一回事......