gpt4 book ai didi

syntax - Prolog 中大括号的含义

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

Prolog 中大括号的含义是什么:

{a,b,c}

我知道我可以使用它们,但是它们描述元组还是什么?

最佳答案

Prolog 几乎和 C 一样古老……从一开始,它就采用了一种特殊的语法方法。因为它是所谓的homoiconic language ,一切都是一个术语。因此,我们确信{a,b,c}也是一个术语。在我的old Prolog interpreter ,我将“{”和“}”作为一对单独的运算符处理,因此能够处理 DCG 规则,如 Clocksin/Mellish Programming in Prolog 中所述。附录 D(注意,我在 google 上搜索了作者和书名,这本书是非官方副本,而且我使用的书要老得多,可能是 1985 年的……)

让我们探索一下 SWI-Prolog REPL 的一些语法:

?- functor({a,b,c},F,N).
F = {},
N = 1.

所以,{a,b,c}它只是一个复合词,a,b,c它的参数:

?- {a,b,c} =.. Syntax.
Syntax = [{}, (a, b, c)].

还有write_canonical在探索语法细节时很有帮助,但在这种情况下,它并没有让仿函数是什么变得那么明显:

?- write_canonical({a,b,c}).
{','(a,','(b,c))}

值得注意的 SWI-Prolog 扩展 dicts ,使用 {} 构建干净的对象表示...

关于syntax - Prolog 中大括号的含义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32432308/

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