gpt4 book ai didi

types - swi-prolog 中的 Prolog 类型定义

转载 作者:行者123 更新时间:2023-12-04 16:41:28 24 4
gpt4 key购买 nike

在视觉序言中,序言程序中有“域”部分,您可以在其中定义类型。 swi-prolog中是否有类似的东西?

在视觉序言中,类型定义如下:

domains
NewType = thing1; thing2

最佳答案

没有。但是 Mercury 中有模式声明. Mercury 不仅仅是 Prolog;它是 functional-logic语言。 Mercury 仍然有很多 Prolog 语法。

SWI-Prolog 是一个标准的 Prolog。它只使用文档中的模式声明 1作为用户的信息。这样的声明可以放在模块的注释中,以便编译文档解析程序。

在标准 Prologs 中,除了注释之外,只有在非常特殊的情况下才允许(并且需要)这样的声明。 block/1 Sicstus Prolog 的谓词例如需要它们。

Block/1 用于共同路由(延迟评估、延迟等)。我只看过block在我生命中的一个程序中使用,PAKCS 2 ,另一种功能逻辑语言的解释器。当解释器移植到 SWI 时,block/1没有使用。

1 SWI 源文档中的类型和模式声明
2 PAKCS,一个使用 block/1 的程序谓词(PAKCS 是 curry 语言的一种实现。)

关于types - swi-prolog 中的 Prolog 类型定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3955263/

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