美文网首页
Pyke 学习笔记(一)

Pyke 学习笔记(一)

作者: gocoding | 来源:发表于2018-04-26 10:06 被阅读0次

    事实陈述

    * Pyke 知识库是一维结构,知识库中只有事实陈述语句,不允许包含其他知识库。同时,事实陈述语句也是一维结构,句中不能包含其他语句。

    * 语句::= 标识.标识(参数,参数,……)

    * 参数可以是 Python 简单的数据结构(数字,字符串,None,True 或 False),或者由它们组成的元组(包括嵌套的元组)。

    模式匹配

    文字模式:匹配对象是一模一样的值,即其自身。 

    模式变量:匹配的可以是任何对象(包括其他模式变量)。 

    还有一种复合模式: 

    元组模式:匹配对象是元组。


    若想陈述某个事实,直接把数据写成参数就行。 

    但若要通过提问等方式,推断某个结论,需要以模式作为参数。

    模式变量用做输出变量。形式上以美元符号 $ 开头。

    匿名变量的名字,开头字符是下划线(_),其余字符无关紧要,顶多有点文档助记的作用。不过符号 $ 必不可少。匿名变量,从不约束值。或者说,从不赋值给它,它总是自由的。

    模式变量是如何与数据值匹配合一的。 

    首先,检验模式变量是否已经约束了值。 

    若已经约束了值,则把它与数据的值比对,若一致,则匹配成功。 

    若尚未约束值,则把数据的值与其匹配合一,这种匹配总会成功。 

    模式变量在未受约束 时,可与任何值合一匹配。匹配后,变量约束了那个值。这也是匹配的副作用。模式变量在约束了值以后,只能与完全相同的值匹配,很像个文字模式。

    元组模式只与元组合一匹配。它形式上是在圆括号中,成员由逗号隔开的模式列表,元组的最后那个变量,用星号(*)修饰成“其余模式”。这个“其余模式”的变量,总是约束为元组。

    若模式变量A约束成B,即A变成了B,则它们实际上成为相同的模式变量。 模式变量A约束成B之后,B依旧是自由的、未受约束的。

    相关文章

      网友评论

          本文标题:Pyke 学习笔记(一)

          本文链接:https://www.haomeiwen.com/subject/fnqplftx.html