【问题标题】:Prolog double periodProlog双周期
【发布时间】:2011-11-07 22:24:57
【问题描述】:

Prolog 中的“..”是什么意思?

我有这个代码:

Goal=.. [GoalPredicate|Pos]

我不知道“..”是什么意思

【问题讨论】:

  • 一个小提示:Goal 之后会被调用吗?也就是说,Goalcall(Goal) 会晚一点出现吗?很多这样的(=..)/2 可以替换为call/2call/3
  • 是的,三四行后调用(目标)
  • 那么你应该使用call/N!这是我们最被低估的功能之一。它支持干净的高阶编程。将包括三个变量的所有出现的相关来源放入您的问题中......

标签: prolog logic


【解决方案1】:

此运算符称为“univ”,并​​在例如 GNU Prolog 手册here 中进行了描述:

8.4.3 (=..)/2 - 大学

模板

=..(+nonvar, ?list)
=..(-nonvar, +list)

说明

如果 List 是一个列表,其头部是与 Term 的主函子对应的原子,而其尾部是 Term 的参数列表,则 Term =.. List 成功。

=.. 是预定义的中缀运算符(第 8.14.10 节)。

描述此运算符的其他优秀资源:

【讨论】:

    猜你喜欢
    • 2017-02-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多