当前位置: 首页 > 编程笔记 >

Prolog操作员声明

程谦
2023-03-14
本文向大家介绍Prolog操作员声明,包括了Prolog操作员声明的使用技巧和注意事项,需要的朋友参考一下

示例

在Prolog中,可以使用op/3以下命令定义自定义运算符:

op(+Precedence, +Type, :Operator)

  • 声明运算符为具有优先级的类型的运算符。运算符也可以是名称列表,在这种情况下,列表的所有元素都声明为相同的运算符。

  • 优先级是介于0和1200之间的整数,其中0删除声明。

  • 类型为下列之一:xf,yf,xfx,xfy,yfx,fy或fx其中f指示函子的位置和x与y指示的参数的位置。y表示优先级低于或等于函子的优先级的术语,而x表示严格较低的优先级。

    • list-style-type: square;">
    • 前缀:    fx,fy

    • 中缀:(    xfx不关联),xfy(右关联),   yfx(左关联)

    • 后缀:   xf,yf

用法示例:

:- op(900, xf, is_true).

X_0 is_true :-
  X_0.

查询示例

?- dif(X, a) is_true.
dif(X, a).
           

 类似资料:
  • 公共类主{ } 第一天开始学习java。我面对一堵墙。我不知道为什么

  • 本节详细介绍可用于构造SQL表达式的运算符的用法。 这些方法是根据 Operators 和 ColumnOperators 基类。这些类的后代可以使用这些方法,包括: Column 物体 ColumnElement 对象,它们是所有核心SQL表达式语言列级表达式的根 InstrumentedAttribute 对象是映射的属性。 在教程部分中首先介绍了运算符,包括: SQLAlchemy 1.4/

  • 我理解下面的区别(至少对于Java): 但我的问题是,当你在处理布尔表达式时,有没有理由使用非短路运算符?是否有一些性能上的好处或使用不会被认为是坏的练习?

  • 我正在开发一个广泛使用C模板的库。在编写时,我遇到了这样的代码(当然是简化的): 在使用msvc 19(Visual Studio 2017)编译时,我遇到了以下错误: /opt/compiler-explorer/windows/19.10.25017/lib/native/include/xlocale(314):警告C4530:使用了C异常处理程序,但未启用展开语义。指定/EHsc(28):

  • 仅企业版可用 获取管理员列表接口 创建管理员 删除管理员

  • 我找到了一个连接多个文件中相同行的行。如何在两行之间添加空格? 如果文件A中的第1行是蓝色的,文件B中的第1行是天空,则A会变蓝,但需要蓝天。