簡體   English   中英

(序言)從列表中獲取范圍內的數字

[英](Prolog) Get numbers within a range from a list

我正在嘗試從列表中獲取10到40(含)之間的所有數字,並輸出到另一個列表。 到目前為止,我的代碼可以正常工作,但是無法達到預期的效果。 問題是我不能使用系統謂詞。

rangeTenForty([], List2).
rangeTenForty([H|T], List2) :- H >= 10, T =< 40, rangeTenForty(T, List2).
rangeTenForty([H|T], List2) :- rangeTenForty(T, List2).

一些條件:

?- rangeTenForty([400, 13, 20, 50], X). 返回答案X = [13,20],一個查詢

?- rangeTenForty([100, 5, 77], X). 返回答案X = [],但查詢

?- rangeTenForty([12,25,2004], [12,2004]). 必須返回答案編號。

任何幫助都非常感謝。 非常感謝。

您需要糾正一些問題。

rangeTenForty([], []).
rangeTenForty([H|T], [H|L]):- H >= 10, H =< 40, rangeTenForty(T, L).
rangeTenForty([H|T], L):- (H < 10;H > 40), rangeTenForty(T, L).

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM