You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求SWI-Prolog中满足特定不变量规则的generator1_inv谓词

实现SWI-Prolog谓词generator1_inv

需要实现SWI-Prolog谓词generator1_inv/4,参数定义如下:

  • +ListIn:输入列表,元素包含普通项与形如Inv(bi)的项(已知Inv(a) = a)
  • -ListOut:转换后的输出列表
  • +Inv:指定的逆函数符(如示例中的k)
  • +Order:对目标项连续应用Inv的次数

转换规则

  • 输出列表ListOut中的成员相对于Inv唯一:不会同时存在项X和满足Inv(Y)=X的项Y
  • 若输入列表ListIn中同时存在项a和满足Inv(b)=a的元素,输出列表ListOut中保留的是对a连续应用Order次Inv的结果,而非a本身

示例

示例1

?- generator1_inv([k(a), a, k(k(a)), v, b ], ListOut, k, 1).
ListOut = [k(a), v, b].

示例2

?- generator1_inv([k(a), r(a), a, k(k(a)), v, b ], ListOut, k, 1).
ListOut = [k(a), r(a), v, b].

示例3

?- generator1_inv([r(a), a, r(abc), d(a), k(k(a)), v, b ], ListOut, k, 1).
ListOut = [r(a), k(a), r(abc), d(a), v, b].

示例4

?- generator1_inv([r(a), a, r(abc), d(a), k(k(a)), v, b ], ListOut, k, 0).
ListOut = [r(a), a, r(abc), d(a), v, b].

内容的提问来源于stack exchange,提问作者Martin Kunze

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 15:57:19