本文主要是介绍【人工智能Prolog】Prolog data object AtomsVariablesStructure,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Data Object of Prolog
- Atoms and numbers
- **Atoms 原子**
- **Variables 变量**
- Structure
Atoms and numbers
在之前的示例中我们有接触到大写与小写的C的不同之处:博客https://blog.csdn.net/weixin_43098506/article/details/124444714
然而事实上,对于变量常量的划定远不及大小写,还有包含数字以及符号在内的多种表达方式。本章将学习、记录这些表达方式的规则。
Atoms 原子
原子,是化学变化中最小的粒子,而在prolog中,代表的就是常量,而非变量。而对于常量与变量,最简单的理解方式就是:名字就是常量,而未知数则是变量。
原子(常量)有多种表达形式:
(1)由字母、数字和符号构成,但是首字符必须是小写的字母:
(2)由特殊的符号构成:
(3)由单引号与字母构成:
Variables 变量
变量主要有两种表达形式,第一种是大写字母开头,第二种是下划线开头。
而这两种变量的表达方法对结果有很大的影像。比如我们举例如下:
male(tom).
male(don).
male(pat).
female(bob).
parent(tom,bob).
parent(bob,pat).
parent(don,pat).
mother(X,Y) :- parent(X,Y),female(X).
father(X,Y) :- parent(X,Y),male(X).
grandpa(X,Y) :- parent(X,Z),parent(Z,Y).
has_a_child(X,Y) :- parent(X,Y).
执行程序:
会发现结果会将所有的满足条件的X和Y都打印出来。
而若我们将 has_a_child 函数重新定义为:
has_a_child(X,Y) :- parent(X,_)
则执行结果为:
不会打印出Y,只会打印出所有满足结果的X。
Structure
structure 可以理解为结构体。
一个最简单理解的结构体就是 date 日期,我们可以将2022年5月1日写成结构体的 Prolog 格式:
date(1,may,2022);而2022年5月的所有日子也可以写成:date(Day,may,2022).
而当我们掌握使用结构体的方法,可以用其来标识点线面:
比如点P1 = point(1,1),点P2 = point(2,3),线S = seg(P1,P2) = seg(point(1,1),point(2,3)),面T = triangle(point(4,2),point(6,4),point(7,1))
而且我们可以不仅限于二维,我们也可构建三维:
point(X,Y) 二维,point(X,Y,Z)三维
当然,我们更可以构造物理结构(电路与电子):
这篇关于【人工智能Prolog】Prolog data object AtomsVariablesStructure的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!