如果有人帮助我进行下面的练习,我将不胜感激
如果我有prolog谓词 **split_list(Limit,List,High,Low) (split_list/4)**
,它有一个整数列表 List ,和一个整数 Limit ,"returns"列出 High 列表List的所有数据大于或等于 Limit ,列表Low低于 Limit 的数据 . 例如: ?- split_list(2, [0, 2, 1, 3, 4], High, Low). High = [2, 3, 4] Low = [0, 1]
i)用 less possible controls. 给出谓词的 backtracking definition
ii)定义谓词 split_list_alt/3 ,具有[i)的相同声明含义](非递归定义)//注释:使用谓词集合解决方案(非回溯)例如: ?- split_list(0, [0, 2, 1, 3, 4], High, Low). High = [0, 2, 1, 3, 4] Low = [] Yes
1 回答
您可以使用以下谓词列表来实现此目的 .