首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Picat中的"=>“符号定义

Picat中的"=>“符号定义
EN

Stack Overflow用户
提问于 2022-03-07 16:11:08
回答 1查看 73关注 0票数 0

在Picat中,符号"=>“的定义是什么?你是如何解读的?这意味着什么吗?我很难理解它,因为手册和书中似乎都没有关于它的信息。

代码语言:javascript
复制
%example using "=>"
main => 
 A = true, 
 B = true,
 C = function(A,B),
 predicate(A,B).
 
function(true,true) = R => R =  true.
predicate(true,true) => true.

在前面的例子中,您将如何描述"=>“的含义?这只是语法上需要的东西,比如Java中的方法声明后的"{“,还是有更深层次的含义?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-03-07 18:16:54

简单地说,如果使用=>而不是:-,本质上是在编写确定性谓词。正如我们所知道的,Prolog是一种实用的编程语言,不需要保持所有谓词的纯正性。很多时候,我们实际上用cut编写了一些不纯的程序,希望能做到片面的统一。=>只是为编写这样的程序提供了一个方便的机制。

您可以通过程序转换来理解=>

代码语言:javascript
复制
p(A1,A2,...An), C1, C2, ... => Body

在语义上等同于

代码语言:javascript
复制
p(V1,V2,...Vn) :-
    Pattern = p(A1,A2,...An),
    Args = p(V1,V2,...Vn),
    subsumes_term(Pattern, Args),
    Pattern = Args,
    C1, C2, ...,
    !,
    Body.

更多细节见https://swi-prolog.discourse.group/t/picat-style-matching

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71383992

复制
相关文章

相似问题

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