我正在努力学习prolog。我想在prolog中写一个代码来获得一般数字列表。到目前为止,我有pick_numbers_general(List, N, NumList)
,其中List
是一般列表(包括嵌套列表),N
是一个数字。
如果NumList
是List
中的数字列表,包括嵌套列表中的数字大于N
,则谓词会成功。的出现顺序
Numlist
中的数字与L
中的数字相同,例如,当pick_numbers_general([g,h,1,[2,[n,3]],p],1,NumList)
为NumList
时,[2,3]
为真。
答案 0 :(得分:0)
提示:你一次做三个操作。如果你将它们分开,这个练习就会变得容易多了。
pick_numbers_general(List, Min, Numbers) :-
flatten(List, Flat),
filter_numbers(Flat, Numbers0),
filter_greater_than(Numbers0, Min, Numbers).