没有函子的 prolog 术语
我面临着有关列表和术语的序言问题。那么我的问题是如何编写一个谓词
transform([a,b],X)
将返回 X = (a,b) 或反之亦然
这对我来说很奇怪,因为我以前从未遇到过这样的术语。我尝试使用内置 =.. 但
=..((a,b,c,d),X)
返回 X=[',',a,(b,c,d)] 这让我深感失望。 谢谢。
I am facing a prolog problem regarding List and Term. Then my question is how to write a predicate
transform([a,b],X)
will return X = (a,b) Or vice versa
This is weird with me because I've never faced such term before. I tried with the built in =.. but
=..((a,b,c,d),X)
returns X=[',',a,(b,c,d)] which makes me deeply disappoint.
Thank you.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
检查如下内容:
仅当您想要转换([Item],Item)时才需要第一个子句。
请注意,您正在构建的术语确实有一个函子,它是 ','/2,并且它显示在您看到的括号中。
Check something like this:
The first clause is only needed if you want transform([Item], Item).
Note that the term you are building does have a functor, it is ','/2, and it is shown with the parenthesis you are seeing.