问题标签 [dcg]
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.
prolog - Prolog函数是否包含?
我正在尝试制作一个 Prolog 谓词iscontained/2
:如果在给定中列出iscontained(List, Search)
,则返回,如果没有。如果它是一个输入的变量,那么它只返回它等于列表中的每个元素。true.
Search
List
false.
例子:
我需要朝正确的方向推动,而不是要求伸出援手,除非你知道快速的方法。任何帮助表示赞赏,谢谢。
prolog - 将列表分成所需长度
我正在尝试编写谓词divide(L,Len,Slist)
,当 Slist 可以与从 List L 分配的长度为 Len 的列表统一时,该谓词将成立。例如
应该给出这样的答案
但是我当时找不到更好的方法,length(X,Len), sublist(L,X).
但它确实工作得太慢了。应该怎么看除谓?
prolog - 如何打印整个路线
比如go(a, d)。我希望它也打印路线,例如路线 a、路线 b、路线、c 和路线 d
prolog - Prolog dcg 从语言中生成所有单词
我正在尝试在 prolog 中编写一些 dcg 语法来描述
a^nb^n n>=0
"",ab,aabb,aaabbb itd
我写的都是
只要我想做的只是检查单词是否正确,它就很好,但是 dcg 语法应该如何在 prolog 中查看?-phrase(s,X)
它将从我的语言中生成所有单词?
tree - 树到列表(更新)
我在另一篇文章中尝试了某人关于如何将树更改为列表的评论的建议。但是,我在某处(或某处)有一个未声明的变量,所以我的列表中的值是 [_G667, _G673, _G679],而不是 [5, 2, 6],这是正确的答案。据我所知,所有的操作都是正确的。
这是代码:
我使用的查询是:
有人看到变量问题吗?我认为它可能在第一行(带有 Item),但如果我将 Item 更改为 item,查询会立即返回 false。
我只写了几个 Prolog 程序,所以这对我来说仍然是一个新概念。
prolog - Change DCG to be deterministic
how to change this gramma to be deterministic
I just dont know where to put cut to avoid backtracking.
prolog - DCG(再次)在语义动作中创建抽象树
这是一些代表树的语法
其中括号中的*
均值leaf
和几棵树描述了儿子是括号中的树的根。我必须将该语法重写为 dcg 并添加语义操作,这将创建该树的抽象树leaf/0
以及任何想法或来源的node/2
示例node(node(leaf,leaf),node(leaf,leaf))
,我将不胜感激。
prolog - 使用 Prolog 从语言规则中获取数据模型路径?
我想为数据仓库构建一个半自然语言界面。例如,一个简单的数据模型如下所示:
我想进行这样的查询:
ACME employees
,Bugs Bunny salary
等ACME department types
。
对于不在语法中的输入,我会调用数据库并将 say ACME
into解析为Company
.
...并将查询转换为我的数据库语言可以理解的路径:
[Company].departments.employees
, [Employee].salary
, [Company].departments.type
.
我记得以前使用 SWI-Prolog 解析英语句子并说出它们是否正确。在这种情况下,Prolog 仍然是要走的路吗?
谢谢
prolog - 列表列表中的树路径
我想构建一个谓词(Prolog),它接受一棵树并返回一个列表列表,每个列表都是一个树路径。树被定义为树(根,左树,右树)。请问您有什么建议吗?
prolog - 用 Prolog 中的变量替换术语
我在 Prolog 中有一个 DCG,我可以像这样查询:
q(Tree, [name, of, company], []).
并得到一个响应,显示解析查询所采用的路径:
Tree = q(['company (Class)', 'name (Attribute)'])
现在我想提出一个查询,例如:
q(Tree, [name, of, acme], []).
并且无法匹配 term acme
,我想创建一个变量Acme
,以便得到类似的东西:
我正在使用 SWI-Prolog 并从另一种语言查询它,这就是为什么查询都是小写的。我的另一个选择是创建所有有效术语的词典并用变量替换查询中的所有未知数,但我希望有一个 Prolog 解决方案。
谢谢你。