gpt4 book ai didi

prolog - 关于 Prolog 语法

转载 作者:行者123 更新时间:2023-12-02 08:38:02 24 4
gpt4 key购买 nike

有时我会看到以下术语: X = a:b或者 X = a-b

我可以做类似的请求 X = Y:Z正如预期的那样,编译器将 Y 与 a 和 Z 与 b 统一起来。

现在我的答案是:我可以使用哪些字符(或字符序列)来组合两个 Prolog 原子?!

也许你可以给我一些关于这个问题的更多信息的链接。

感谢您的帮助和来自德国的亲切问候

最佳答案

Which characters (or sequence of characters) am I allowed to use to combine two Prolog atoms?!

您在这里要求的是 Prolog 的整个运算符语法定义。要获得完整的答案,请参阅 the tag iso-prolog有关如何获取 Prolog 标准 ISO/IEC 13211-1 的完整信息。

但作为一个简短的答案开始:

Prolog 语法包括

  1. 函数符号,如 +(a,b) , 加

  2. 动态可重新定义的运算符语法,加上

  3. 一些额外的。

您似乎想知道哪些“字符”可以用作运算符。

简短的回答是你可以使用所有原子Op成功为current_op(Pri,Fix,Op) .因此,您可以动态询问存在哪些运算符:

?- current_op(Pri, Fix, Op).   Pri = 1, Fix = fx, Op = ($);  Pri = 1150, Fix = fx, Op = (module_transparent);  Pri = 700, Fix = xfx, Op = (=@=);  Pri = 700, Fix = xfx, Op = (@>=);  Pri = 700, Fix = xfx, Op = (>=); ... .

所有这些运算符都可以以指定的方式使用,作为具有指定优先级的前、中或后缀。其中一些运算符是特定于 SWI 的,有些是由标准定义的。以上,仅@>=>=是标准运算符。

大多数运算符由图形字符 #$&*+-./:<=>?@^~ 组成仅由小写字母开头的字母、数字和下划线组成。有两个独角!;然后有,|更特别的是。与上述不同的运算符名称需要引用 - 您很少会遇到它们。

要查看运算符如何嵌套,请使用 write_canonical(Term) .

长答案是您也可以自己定义此类运算符。但是,请注意,更改运算符语法通常会产生许多难以理解的含义。更是如此,因为许多系统在一些很少使用的配置上有所不同。比如你提到的系统,SWI differs in several ways .

我建议在您了解更多有关 Prolog 语言的信息之前避免定义新的运算符。

关于prolog - 关于 Prolog 语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19302368/

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