cost 382 ms
如何像在 Prolog 中一样在 Mercury 中生成新变量列表? - How to generate lists of fresh variables in Mercury like I can in Prolog?

在 SWI Prolog 中, list(Xs):- length(Xs, _). 是“纯粹的”,因为我可以将具有任何类型实例化的变量传递给它,并且它将不确定地将它与特定长度的所有最通用的统一符统一起来。 是否可以在 Mercury 中编写纯list/1 ? 该手册似乎暗示可以做到这一点,但我在 ...

我可以在运行时添加谓词吗? - Can I add predicates at runtime?

上下文是一个谓词系统:规则和事实,它们根据客户的情况共同决定支付给客户的金额。 大多数规则和事实在编译时是已知的,但有关特定情况的事实仅在运行时处理支付请求时才知道。 我知道如何在 Mercury 中对系统进行编程,以防所有谓词在编译时都已知(即是源代码的一部分),但我不知道如何在运行时引入谓词。 ...

2021-01-16 13:55:38   1   61    mercury  
从术语/目标列表中查找成功次数 - Find number of successes from a list of terms/goals

如果列表L中的N个数字恰好等于 1,我已经编写了以下谓词exactly/2 : 例如,调用exactly(X, [1, 0, 0, 1, 0, 1])会将X绑定到3 。 我想创建类似的东西,但对于谓词:我想编写一个谓词,如果列表L中的N个目标成功,则该谓词成功。 例如,调用exactly(X ...

Det中的汞含量 - Mercury nondet in det

在Mercury中,假设您处于det谓词中,并且想要按以下方式调用nondet谓词。 如果没有解决方案,则需要Result = [] ; 如果有一个或多个, Result = [FirstSolution]想要第一个,例如Result = [FirstSolution] 。 nondet谓 ...

2019-05-21 04:09:31   2   57    mercury  
汞约束求解 - Mercury Constraint Solving

我知道一点 Prolog,经常使用 CLP(FD) 等。这篇论文(显然是 2006 年写的)表明 Mercury 现在也有约束求解。 我在图书馆参考手册中发现了一些关于它的提及。 但是,我找不到如何使用它。 例如: 给出编译器错误 但是在 Prolog 中,使用 clpfd, 工作正常, ...

2019-05-02 02:49:32   1   181    clp / mercury  
水星:此谓词在顶层声明时有效,但不能作为lambda声明 - Mercury: This predicate works if declared at the top level, but not as a lambda

(以下摘录来自该测试套件 ,它是此处找到的两个文件程序的一半。) 我用两种方式定义了一个辅助谓词:一次是在顶层(称为helper ),一次是作为lambda(称为Helper )。 在下面的代码的最后三行中,我使用了该辅助谓词。 如果使用helper程序,则可以使用,但是如果使用Hel ...

水星清单统一 - Mercury List Unification

我正在努力学习Mercury 。 我一直在处理列表,但我无法获得看似简单的统一工作。 这是我简化的示例案例: 在List = [1,2]我收到以下错误(已格式化并稍作编辑): 不过,这似乎不对; 特别是[1,2]的实例化。 这是一个字面意思; 它的实例化不应该像list.'[|]'( uni ...

2018-09-26 15:23:47   1   127    mercury  
如何检查变量是否在 Mercury 中实例化 - How to check if a variable is instantiated in Mercury

我是 Mercury 语言的完全初学者,虽然我之前学习过 Prolog。 水星的新方面之一是真皮主义。 main函数必须是确定性的。 为了做到这一点,我必须检查一个变量是否统一/绑定到一个值,但我找不到如何做到这一点。 特别看代码: 这样的main不会失败,即它会(我猜)满足确定性约束。 所以 ...

2016-10-15 21:41:17   3   182    mercury  
如何为导入或输出列表的谓词声明谓词? - How to declare a pred for a predicate that imports or outputs lists?

寻找帮助来声明谓词的谓词,该谓词可以导入或输出列表。 我试过:-pred name(list :: in,integer :: out)是多的。 并且编译器错误消息说无法识别list / 0。 检查了库模块列表,发现我应该写类似...(list(T):: in .....)的东西,但是并没 ...


 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM