gpt4 book ai didi

list - 反向/回文的递归Prolog谓词

转载 作者:行者123 更新时间:2023-12-04 05:26:15 25 4
gpt4 key购买 nike

  • 我能否获得一个具有两个参数的递归Prolog谓词,称为反向,它返回列表的反向:

    示例查询和预期结果:

    α-反向([a,b,c],L)。
    L = [c,b,a]。
  • 由两个称为palindrome的参数组成的递归Prolog谓词,如果给定列表为回文,则返回true。

    具有预期结果的示例查询:

    α-回文([a,b,c])。
    错误的。

    ?-回文([b,a,c,a,b])。
    真的。
  • 最佳答案

    广告1:不可能将reverse/2定义为(直接将thx编辑为@repeat:tail)递归谓词-除非您允许使用辅助谓词。

    广告2:

    palindrome(X) :- reverse(X,X).

    但是最简单的方法是用DCG定义这样的谓词:
    iseq([]) --> [].
    iseq([E|Es]) --> iseq(Es), [E].

    reverse(Xs, Ys) :-
    phrase(iseq(Xs), Ys).

    palindrome(Xs) :-
    phrase(palindrome, Xs).

    palindrome --> [].
    palindrome --> [E].
    palindrome --> [E], palindrome, [E].

    关于list - 反向/回文的递归Prolog谓词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6442750/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com