首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否有用数字1替换每个匿名变量的谓词?在只包含0、1和匿名变量的列表上

是否有用数字1替换每个匿名变量的谓词?在只包含0、1和匿名变量的列表上
EN

Stack Overflow用户
提问于 2019-04-24 13:34:27
回答 1查看 72关注 0票数 1

我有一个名为unify的谓词,它应该将列表中的所有匿名变量(列表包含0、1和匿名变量)替换为数字1。但是,我认为我做的递归是错误的,因为输出不是完全完成的列表。这是代码:‘

代码语言:javascript
复制
unify([P|T], [1|L]):-
    P\==0, P\==1, !, unify(T,L).
unify([P|T],[P|L]):-
    P==0; P==1,!, unify(T,L).

例如,输入unify([_,_,1,0,0,_,_],L).的输出应该是L=[1,1,1,0,0,1,1].

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-24 14:28:12

unify/2这个名称通常用于实际的通用统一。请注意,此谓词不是纯关系谓词。

代码语言:javascript
复制
binlist_oneified(Bs, Os) :-
   must_be(list, Bs),
   copy_term(Bs, Os),
   term_variables(Os, Ws),
   maplist(=(1), Ws).
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55831366

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档