簡體   English   中英

我如何在 prolog 中編寫一條名為 countIt 的規則?

[英]How do i write a rule in prolog called countIt?

在 Scheme 中編寫 function 或在 Prolog 中編寫名為 countlt 的規則,它接受一個數字列表 L 和另一個數字 N,並返回列表 L 中小於 N 的數字的計數。

?- countlt([6, 1, 9], 4, X).
X = 1. 

?- countit([50, 27, 13], 1, X).
X = 0.

如果您正在尋找不使用任何內置或庫謂詞的解決方案,這樣的事情將解決您的問題:

countlt([], _, 0).
countlt([A | B], N, X) :- ((N > A, countlt(B, N, T), X is T + 1); countlt(B, N, X)), !. 

您當然可以將其擴展為多行,但我發現此解決方案更直接,並且對剪切運算符的篡改更少。

暫無
暫無

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

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