list - 检查某些东西是否是 Prolog 中嵌套列表中的成员

标签 list prolog nested member

我想检查 x 是否是嵌套列表的成员,所以

member(x,[a,b,[c,d],[e,[f,g],[x,i]]])

返回True,如果没有x则返回False。这有可能吗?

最佳答案

通过添加一个检查项目是否是第一个元素的成员的子句来扩展正常的递归 member 定义:

member(X, [X|_]).                 %X is first element
member(X, [L|_]) :- member(X, L). %X is member of first element
member(X, [_|T]) :- member(X, T). %X is member of tail

关于list - 检查某些东西是否是 Prolog 中嵌套列表中的成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19748047/

相关文章:

prolog - 删除列表中的前导 s(s(0))

prolog:列表中最大重复元素

prolog - 使用不纯原语的 Prolog 谓词的纯度

go - 如何通过模板中的变量访问对象字段?

c++ - C# 到 C++ 的转换 : Searching Arrays

java - 非法参数异常 : Could not parse [/24] - SubnetUtils

python - 扫描阅读框架[3] Python

python - 从文件中解析数据

c++ - 将 shared_ptr 的嵌套智能指针重置为 shared_ptr(或 unique_ptr),看似矛盾

java - Spark 获取嵌套 json 的列名