问题标签 [yap]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
172 浏览

random - YAP Prolog random 缺乏随机性

使用 YAP 执行以下 Prolog 程序时,输出始终相同,即整数 233。

例如,如果我执行以下 bash 脚本,输出总是相同的整数 (233)。

如果我使用 swipl 重复这个过程,那么每次的输出都是不同的,即随机的。

谁能解释一下?

0 投票
1 回答
35 浏览

operators - 我的 Yap 运算符定义有什么问题?

试图创建一个列表理解。我在这里所拥有的在 SWI Prolog 和 Jekejeke Prolog 中工作,但 [ <- ] 运算符在 Yap 中失败。无法弄清楚为什么。

必须创建 between/3、findall/3 和 maplist/2,因为它们不是 Yap 的一部分。我相信这三个自制谓词可以正常工作(它们在 Jekejeke Prolog 中可以正常工作)。

Yap 6.2.2 似乎无法处理 [ <- ] 运算符。获取紧接在运算符之前的语法错误。

定义运算符:

为列表理解创建一个模板:

使用模板创建一个从 M 到 N 的素数列表,包括在内。将列表返回为 P。

结尾。

0 投票
1 回答
77 浏览

makefile - cmake 和 make 无法在 Fedora 23 中编译 YAP

这是一个特定的问题,但是,我无法在 Fedora 23 中获得 cmake 和 make 来编译 Yet Another Prolog。克隆了 Github 上的最新 repo,YAP 6.3.4。我的朋友在他的 Funtoo Linux 上运行 cmake 并在相同的克隆上成功地制作。当我在 Fedora 23 上运行它们时,我会遇到奇怪的错误,这些错误只有在缺少 CUDD 头文件时才有意义,但 CUDD 是随头文件一起安装的。

我希望任何人都有足够的经验来解释为什么 cmake 生成的 Makefile 在一个 Linux 系统上编译时无法在另一个 Linux 系统上编译的原因。

这是一个 make 错误示例(使用 cmake 制作的 Makefile 没有错误)。“未知”类型名称位于我的系统上安装的 CUDD 标头中。源文件 cplint 应该使用 CUDD 构建

0 投票
1 回答
484 浏览

prolog - 如何获取当前工作目录

我是新手yap(通常是 Prolog),我不知道如何获取当前目录。

事实上,我无法理解文档:

working_directory(-CurDir,?NextDir)

获取当前目录在CurDir. 如果NextDir绑定到原子,则使其值成为当前工作目录。

我不明白“ CurDir”是什么意思。

此外,我找不到关于正式论点-和之前的文档。?(我猜这?意味着参数是可选的,但我对 .)一无所知-。)

底线,我不知道如何使用这些信息来查询当前工作目录。


我已经尝试了很多盲目的猜测,并且总是得到一个no.或一个错误的响应。例如:


我有两个问题:

  1. 我在哪里可以找到关于 、 和 的元文档,这些元文档-出现?+文档中的正式参数前面yap
  2. 如何获取当前工作目录?

更新:以下也失败:

0 投票
1 回答
74 浏览

stream - 使用 Yap-Prolog 从流中读取列表

我想从我的(yap)序言脚本中运行一个(python3)进程并读取其格式化为整数列表的输出,例如[1,2,3,4,5,6].

这就是我所做的:

但是,它在read/2谓词处失败并出现错误:

我确信我可以正确运行该过程,因为按预期将[stdout(std)]参数提供给process_create程序输出。[1,2,3,4,5,6]

奇怪的是,当我将过程更改为输出一些常数项(as constant_term)时,它仍然会给出相同的PL_int64错误。在进程的输出 ( [1,2,3,4,5,6].) 中添加一个点并不能解决错误。使用read_term/3给出了同样的错误。read_string/3在 YAP-Prolog 中未定义。

我怎么解决这个问题?

0 投票
0 回答
72 浏览

sockets - 关于如何使用 yap 的 socket_select/5 的任何示例?

我正在尝试编写一个 prolog 服务器,以便能够从用另一种编程语言(Python、JavaScript 等)编写的客户端查询用 prolog 编写的知识库,就像 SQL 数据库一样。

我原以为这是一件很常见的事情,但我在网上找不到任何例子。

所有必需的套接字函数似乎都列在https://www.dcc.fc.up.pt/~vsc/Yap/documentation.html#Sockets上,我使用 yap 而不是 swi-prolog 的原因是我想要使用 Unix 套接字,而不是 TCP/IP 套接字。但我将在这里使用 AF_INET,因为 swi-prolog 不支持 AF_UNIX。

编写一个从客户端写入字符串的服务器很容易:

我使用的简单 Python 3 客户端如下所示:

棘手的地方是让服务器将字符串回显给客户端,据我所知,这需要 socket_select/5 。但是我从可用的文档中不知道如何使用它。

0 投票
0 回答
99 浏览

macos - 在 MacOS 上安装 Aleph

我正在尝试在 Mac 上获取 ALEPH - 用于提出假设的学习引擎 - http://www.cs.ox.ac.uk/activities/machinelearning/Aleph/aleph 。据我了解,我将需要 YAP——又一个 Prolog。据我在互联网上发现的每个人都是“ brew install yap”(我有酿造)。这就是我得到的:

有谁知道该怎么做?

0 投票
1 回答
623 浏览

prolog - 在prolog中截断浮点数

如何在Prolog中将浮点数截断到小数点后N位?

有没有内置的工具呢?

0 投票
3 回答
174 浏览

file - 区别 yap 和 swi-prolog 阅读规范列表

我有以下测试代码试图将文件读入列表

由于文件很大,我将省略部分输出。

它适用于yap,

但是swi-prolog,它会产生Type error

这里的错误可能是什么问题?

文件raw250-split1.pl可以从ftp下面的 url 中找到,如果您想尝试一下。

感谢您的帮助!


我正在尝试将较早的代码迁移到由 Raymond J. Mooney ftp://ftp.cs.utexas.edu/pub/mooney/chill/SWI-Prolog或更早编写的 代码。所有带有这个标签的问题都与这个任务有关。我是序言的新手,欢迎提供帮助和建议!SICStus 3 #3: Thu Sep 12 09:54:27 CDT 1996

0 投票
1 回答
125 浏览

sql - Yap Prolog - 翻译 SQL 查询

我正在尝试为我从 mySql 转换为 Prolog 事实的数据库创建 Prolog 查询。

Prolog 事实涉及许多表,但与此查询相关的只有两个:

我正在尝试创建一个说明以下内容的查询:

列出恰好有 5 个演员的电影的标题。

到目前为止,我设法创建了这个查询,列出了我所有的电影以及该电影中每个演员的 ID:

我需要的是计算这个 AID 并声明每个 film_id 必须等于 5 次出现但我不知道如何从我到目前为止阅读的 yap 文档中做到这一点。

有小费吗?

提前致谢