搜索 Prolog 结构
我对由大量连词组成的公式感兴趣(更大问题的一部分)。我想编写一个程序,采用如下所示的内容:
:- get_params(conj(conj(a,b),c),X)
并返回连词的所有参数的列表,即 <代码>X=[a,b,c]。目前我可以使用简单的 Prolog 模式匹配来
:- get_params(conj(a,b),X)
来获取 X=[a,b]
但如何您可以执行诸如
:- get_params(conj(conj(a,b),c),X)
之类的操作来获取 X=[a,b,c]
看起来很简单,但我已经奋斗了一整天了!
I'm interested in formulae made up from lots of conjunctions (part of a larger problem). I want to write a program that takes something like this:
:- get_params(conj(conj(a,b),c),X)
and returns a list of all the parameters of the conjunctions i.e. X=[a,b,c]
. At the moment I can do
:- get_params(conj(a,b),X)
to get X=[a,b]
using simple Prolog pattern matching but how would you go about doing things such as
:- get_params(conj(conj(a,b),c),X)
to get X=[a,b,c]
It seems really simple but I've been struggling all day!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
由于您正在描述一个列表,请考虑使用 DCG 表示法:
示例:
Since you are describing a list, consider using DCG notation:
Example:
假设所有 conj 函子都是二元的:
Assuming that all conj functors are binary: