问题标签 [mercury]
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.
mercury - 我可以在运行时添加谓词吗?
上下文是一个谓词系统:规则和事实,它们根据客户的情况共同决定支付给客户的金额。大多数规则和事实在编译时是已知的,但有关特定情况的事实仅在运行时处理支付请求时才知道。我知道如何在 Mercury 中对系统进行编程,以防所有谓词在编译时都已知(即是源代码的一部分),但我不知道如何在运行时引入谓词。是否可以编写一个函数来构造具有给定参数的谓词,然后能够将构造的谓词用作计算金额的上下文的一部分?
mercury - 使用本地模块时出现 Mercury“未定义引用”编译错误
我有一个模块导出nat/1
以测试/生成自然数:
和同一目录中的主模块进行尝试:
我运行mmc --make-int nat.m
它成功生成了接口文件,但是当我运行时mmc main.m
出现以下错误:
我正在使用 MMC version 20.06.1, on x86_64-pc-linux-gnu
。
我错过了一些明显的东西吗?代码改进也非常受欢迎。
prolog - 如何像在 Prolog 中一样在 Mercury 中生成新变量列表?
在 SWI Prolog 中,list(Xs) :- length(Xs, _).
它是“纯粹的”,因为我可以将具有任何类型实例化的变量传递给它,并且它将不确定地将它与特定长度的所有最通用的统一器统一起来。
list/1
是否可以在 Mercury中编写纯文本?该手册似乎暗示可以做到这一点,但我在实际实施时遇到了麻烦。
到目前为止,我所拥有的是:
但是,当我尝试这个时:
我收到以下错误:
我猜我的使用free
可能不正确,否则我需要添加一个额外的模式或概括我的listskel
inst 以涵盖mylist(Xs), Xs = [5]
.
基本上,我应该怎么写mylist/1
,以便它可以在尽可能多的模式下使用?
谢谢!