List 序言:嵌套列表
我有这个序言代码:List 序言:嵌套列表,list,prolog,List,Prolog,我有这个序言代码: pick_number_simple([],[]). pick_number_simple([H|T],[H|T2]):- number(H), pick_number_simple(T,T2). pick_number_simple([H|T],T2):- not(number(H)), pick_number_simple(T,T2). 这会把数字列出来。例如: pick_number_simple([d,f,7,5,e,3,g], NumList)
pick_number_simple([],[]).
pick_number_simple([H|T],[H|T2]):-
number(H), pick_number_simple(T,T2).
pick_number_simple([H|T],T2):-
not(number(H)), pick_number_simple(T,T2).
这会把数字列出来。例如:
pick_number_simple([d,f,7,5,e,3,g], NumList)
pick_numbers_general([a,b,1,[2,[c,3]],d],1,NumList)
给你:
[7,5,3]
但我想让它从嵌套列表中获取数字
例如:
pick_number_simple([d,f,7,5,e,3,g], NumList)
pick_numbers_general([a,b,1,[2,[c,3]],d],1,NumList)
将给你:
[2,3]
我该怎么做呢?你可以使用
所以
等待“让它从嵌套列表中获取数字”是什么意思?第二个参数pick_numbers_general/3应该怎么做?比如从嵌套列表中获取数字,例如,如果我有这个pick_numbers_generals([a,b,1,[2,[c,3]],d],1,NumList)。我只想从嵌套列表中获取Numlist=[2,3]?本例中“1”的含义是什么?它不必只是嵌套列表,1是一个数字,如果输出大于它,则谓词为真。我已更新了答案。这是你需要的吗?