iso-prolog

    2热度

    1回答

    试图打印大胆,在序言带下划线的文本,但不能写出来 write('\033[1mbold\033[0m') ANSI转义字符使这个(预期)错误: syntax error: \ expected in \constant\ sequence 什么是正确的方式做它与gprolog?也许用format?

    13热度

    2回答

    在旧课本一个经常遇到运营商的声明如下所示: ?- op(1200,fx,(:-)). ^^ 使用这些圆括弧是必要的。但今天,他们不再需要: | ?- writeq(op(1200,fx,(:-))). op(1200,fx,:-) 他们为什么不再需要?标准如何应对这种情况? 第97页MU-的Prolog3.2分贝参考手册6.标准运算符声明由Lee纳什,LNCS 238,施

    2热度

    1回答

    我正在构建一个DSL,它使用程序(基本上)必须是唯一的名称。 目前还不清楚用什么样的错误术语来表示第二个定义。 exists_error sorta有点适合,但我不舒服。这似乎意味着缺少定义,而不是多重定义。 permission_error(修改,过程,名称/ Arity)似乎很有前途,但似乎暗示“有些人可以做到这一点,但不是你”。没有进一步的启示,我会用这个。 syntax_error sor

    2热度

    1回答

    键入 “序言” 时获得的终端正确的答案,但错误的答案得: GNU Prolog 1.3.0 By Daniel Diaz Copyright (C) 1999-2007 Daniel Diaz | ?- 打字: | ?- member(2, [1,2,3]). 获取: true ? 然后按Enter键获取: yes 打字: | ?- member(4, [1,2,3])

    4热度

    2回答

    我在七周内使用七种语言的Prolog教程,并尝试使用Android Jekejeke Runtime执行一些示例。 例如,如果我从教程添加 likes(wallace, grommit). ,我得到。 Error: Undefined, private or package local predicate likes/2 我尝试使用断言,如How to create a fact in S

    3热度

    1回答

    我刚开始学习有关prolog,我在想为什么它是dfs而不是bfs,为什么没有简单的方法来改变它。 ISO prolog的任务是吗?

    1热度

    1回答

    如何在SICStus中使用once? 在SWI Prolog的,下面的工作: test(X, Y, abc) :- once(X == 'true' ; Y == 'true'). 但在SICStus序言,once似乎是无法识别的。 SICStus中的once等效于什么? 谢谢。

    14热度

    1回答

    在ISO Prolog中测试不同变量列表的最简洁和规范的方法是什么?我们称之为元逻辑谓词is_varset/1。 所以它应该成功,如果它的参数是一个变量列表都是不同的。请注意,列表始终包含一个[]。如果一个变量在最后,我们称之为部分列表(这不是一个列表)。如果一个非变量项作为既不是[]也不是变量的后缀发生,那么这就是既不是一个部分列表也不是一个列表。 该术语既不是部分列表也不是列表的一个值得注意的

    5热度

    2回答

    在Prolog中,统一X = [1|X]是获得无限列表的理想方式吗? SWI-Prolog没有任何问题,但是GNU Prolog只是简单的挂起。 我知道,在大多数情况下,我可以 one(1). one(X) :- one(X). 更换名单,但我的问题是明确的,如果人们可以在“理智”的Prolog实现中使用的表达X = [1|X], member(Y, X), Y = 1。

    1热度

    1回答

    想象一下,我有以下谓词,其中指出ID loc1指定一个位置。 isLocation('loc1', 'Location 1'). 我想提供第二个文本(Location 1)的翻译,即i。即键值对,如en='Location 1', de='Ort 1', ru='Местоположение 1'。 在Prolog中编码这些数据的正确方法是什么,特别是TuProlog(以及理想的标准化Prol