2011-02-16 94 views
0

我想學習序言。我想在prolog中編寫一個數字總表的代碼。到目前爲止,我有pick_numbers_general(List, N, NumList),其中List是一個通用列表(包括嵌套的),而N是一個數字。初學者prolog編程

如果NumListList中的數字列表,包括嵌套列表中的數字大於N,則謂詞成功。 Numlist中的 號碼的出現順序與L中的號碼相同,因此,例如NumList[2,3]pick_numbers_general([g,h,1,[2,[n,3]],p],1,NumList)爲真。

回答

0

提示:你正在做三個操作一次。如果你將它們分開,這個練習變得更容易。

pick_numbers_general(List, Min, Numbers) :- 
    flatten(List, Flat), 
    filter_numbers(Flat, Numbers0), 
    filter_greater_than(Numbers0, Min, Numbers).