visual-prolog的谓词+的含义及其用法

问题描述

prolog的谓词+的含义及其用法

代码:
path(X,Y,Path):- traverse(X,Y,[X],Q),reverse(Q,Path).

traverse(X,Y,P,[Y|P]):- connected(X,Y).
traverse(X,Y,V,Path):- connected(X,Z),Z=Y, +(member(Z,V)),traverse(Z,Y,[Z|V],Path).

其中,traverse(X,Y,V,Path):- connected(X,Z),Z=Y, +member(Z,V),traverse(Z,Y,[Z|V],Path).
上述规则中有一个谓词为 + /1,如果证明这个目标可以发现,最初的目标失败;如果没有证据可以发现,最初的目标成功。
这句规则在swi-prolog中可以实现,而在visual prolog中不可识别,总是出现如下的情况:
“traverse(X$23,Y$24,V$25,PATH$26) :- connected(X$23,Z$27) , Z$27 = Y$24 , +
Syntax error in parser
Reconsulted from: C:UsersXinxinDesktoppie(1)ExeFILE0.PRO”
在+后面的member就不识别了,这是怎么回事?
我将它改为+(member(Z,V)),加载的时候不会报错,但是这句还是没有起作用,这是为什么?
谢谢!

时间: 2024-08-31 03:09:30

visual-prolog的谓词+的含义及其用法的相关文章

async 函数的含义和用法

本文是<深入掌握 ECMAScript 6 异步编程>系列文章的最后一篇. Generator函数的含义与用法 Thunk函数的含义与用法 co函数库的含义与用法 async函数的含义与用法 一.终极解决 异步操作是 JavaScript 编程的麻烦事,麻烦到一直有人提出各种各样的方案,试图解决这个问题. 从最早的回调函数,到 Promise 对象,再到 Generator 函数,每次都有所改进,但又让人觉得不彻底.它们都有额外的复杂性,都需要理解抽象的底层运行机制. 异步I/O不就是读取一个

Thunk 函数的含义和用法

本文是<深入掌握 ECMAScript 6 异步编程>系列文章的第二篇. Generator函数的含义与用法 Thunk函数的含义与用法 co函数库的含义与用法 async函数的含义与用法 一.参数的求值策略 Thunk函数早在上个世纪60年代就诞生了. 那时,编程语言刚刚起步,计算机学家还在研究,编译器怎么写比较好.一个争论的焦点是"求值策略",即函数的参数到底应该何时求值. var x = 1; function f(m){ return m * 2; } f(x +

co 函数库的含义和用法

以下是<深入掌握 ECMAScript 6 异步编程>系列文章的第三篇. Generator函数的含义与用法 Thunk函数的含义与用法 co函数库的含义与用法 async函数的含义与用法 一.什么是 co 函数库? co 函数库是著名程序员 TJ Holowaychuk 于2013年6月发布的一个小工具,用于 Generator 函数的自动执行. 比如,有一个 Generator 函数,用于依次读取两个文件. var gen = function* (){ var f1 = yield re

Generator 函数的含义与用法

本文是<深入掌握 ECMAScript 6 异步编程>系列文章的第一篇. Generator函数的含义与用法 Thunk函数的含义与用法 co函数库的含义与用法 async函数的含义与用法 异步编程对 JavaScript 语言太重要.JavaScript 只有一根线程,如果没有异步编程,根本没法用,非卡死不可. 以前,异步编程的方法,大概有下面四种. 回调函数 事件监听 发布/订阅 Promise 对象 ECMAScript 6 (简称 ES6 )作为下一代 JavaScript 语言,将

C#中的泛型,结合where的使用,new() struct 分别是什么含义,用法?

问题描述 C#中的泛型,结合where的使用,new() struct 分别是什么含义,用法? C#中的泛型,结合where的使用,new() struct 分别是什么含义,用法? 解决方案 new,约束一个无参数构造函数struct,表示泛型参数是一个结构体 解决方案二: C#中 as 和 is 分别是什么含义?dd if=/dev/zero of=的含义是什么?Linux 下的dd命令使用详解dd if=/dev/zero of=的含义是什么?Linux 下的dd命令使用详解

XAML新编辑器在Visual Studio 2013中的特性及用法

与你们中大多数人喜欢使用Visual tools创建XAML 相比,很多人也倾向于在代码编辑器中创建XAML.我们听到你们大声清晰的反馈,并且为上面的XAML编辑器功能请求开了一条缝.这篇博客详细地描述新编辑器的特性及用法. 数据绑定的智能提示 当前数据上下文属性的智能提示现在可以在绑定表达式中获得.为了编辑器能够识别属性,我们需要在视图中指定数据上下文,而不是通过后台代码设置.如果你选择通过后台代码来指定数据上下文,你可以在视图中设置Design-time的数据上下文,然后我们将能够捎带提示在

Visual Studio自定义项目或工程模板的用法

在开发项目的时候,由其是商业性质的大型项目时,往往需要在每个代码文件上都加上一段关于版权.开发人员的信息,并且名称空间上都需要带有公司的标志.这个时候,是选择在开发的时候手动添加还是自动生成呢? 我们其实完全可以利用 Visual Studio 提供的模板工具自定义一套专属的模板. 自定义项目模板 假如当我添加一个 .cs 文件后,我希望默认添加的文件要看起来像这个样子: 如何实现 1. 随意新建一个工程或使用一个已经存在的工程,在该项目内新添加一个普通的 class 文件,打开后应该和下图长得

c++中explicit关键字的含义和用法

c++中的explicit关键字用来修饰类的构造函数,表明该构造函数是显式的, 既然有"显式"那么必然就有"隐式",那么什么是显示而什 么又是隐式的呢? 如果c++类的构造函数有一个参数,那么在编译的时候 就会有一个缺省的转换操作:将该构造函数对应数据类型的数据转换为该类对象 ,如下面所示: class MyClass { public: MyClass( int num ); } .... MyClass obj = 10; //ok,convert int to

C++ Iostreams用法详解(三)状态标志位

iostreams中共有四个状态标志位定义在ios_base中,具体如下: namespace std { class ios_base { public: typedef implementation-defined-bitmask-type iostate; static const iostate badbit; static const iostate eofbit; static const iostate failbit; static const iostate goodbit;