list - 序言:数字列表

标签 list prolog

如何生成从 1 到 N 的数字列表,其中 N >= 0?

谓词:数字(N,L)。

?-­ numbers(5,X).

X = [1, 2, 3, 4, 5].

?­- numbers(0,X).

X = [].

最佳答案

使用内置numlist/3 :

?- numlist(1, 5, L).
L = [1, 2, 3, 4, 5].

?- numlist(1, 0, L).
false.

在 SWI-Prolog 中,您可以使用 listing(numlist)看看它是如何实现的。

请注意 numlist/3永远不会生成空列表。如果需要,那么您需要编写一个简单的包装器,将失败映射到一个空列表。

关于list - 序言:数字列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7432156/

相关文章:

list - 在 Jinja2 中合并多个列表

prolog - 在 Prolog 中断言数字谓词

prolog - 使用 SICStus Prolog 推广斐波那契数列

python - 生成随机数以获得固定和(python)

java - 文件名未从不同类添加到 ArrayList

python - 创建分层编号的节标题会错误地计算小节

serialization - 相当于 SWI Prolog 中的 Python 酸洗?

python - 按年份和季度对日期列表进行排序

numbers - Prolog - 对数字求和

在 prolog 上列出练习