首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Prolog DCG短语错误

Prolog DCG短语错误
EN

Stack Overflow用户
提问于 2014-05-11 23:23:13
回答 1查看 154关注 0票数 0

我正在尝试理解在这种关于Prolog DCG规则的特殊情况下会发生什么。规则如下:

代码语言:javascript
复制
fizz_buzz(Msg) --> anything, fizz(Msg), anything, buzz, anything.

anything --> [].
anything --> [_], anything.

fizz(Msg) -->
    "fizz",
    {
        format('At fizz we have Msg=~w~n', [Msg])
    }.

buzz -->
    "buzz".

run :-
    atom_codes("blah blah fizz blah buzz", Codes),
    phrase(fiz_buzz(Msg), Codes),
    write(Msg).

并得到了:

代码语言:javascript
复制
ERROR: phrase/3: Undefined procedure: fiz_buzz/3
ERROR:   However, there are definitions for:
ERROR:         fizz_buzz/3

我只是找不到正确的“短语”来运行这个语法。我犯了什么错误?

EN

回答 1

Stack Overflow用户

发布于 2014-05-11 23:28:47

你有一个简单的拼写错误:尝试phrase(fizz_buzz(Msg),Codes),,你会得到

代码语言:javascript
复制
?- run.
At fizz we have Msg=_G1212
_G1212
true 
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23594413

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档