【问题标题】:Prolog won't return true(yes) when it shouldProlog 在应该返回 true(yes) 时不会返回
【发布时间】:2017-10-01 22:12:41
【问题描述】:
mergelist([],[],[]).
mergelist([X],[],[X]).
mergelist([],[Y],[Y]).

我正在运行这个查询?-mergelist([1],[],[1]). 返回真

然后我运行这个查询?-mergelist([1,2],[],[1,2]).它返回假(否)。

我不知道出了什么问题。

我正在使用 ECLiPSe 6.1

【问题讨论】:

    标签: prolog


    【解决方案1】:

    Prolog 无法将 [1,2] 与以下任何一项进行模式匹配:

    • []
    • [X]

    [X] 专门设计用于与单元素列表进行模式匹配。

    试试这个:

    mergelist(L,[],L) :- is_list(L).
    mergelist([],L,L) :- is_list(L).
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-03-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-22
      • 1970-01-01
      相关资源
      最近更新 更多