Prolog

✍ dations ◷ 2025-01-23 02:06:07 #Prolog
Prolog(Programming in Logic的缩写)是一种逻辑编程语言。它创建在逻辑学的理论基础之上, 最初被运用于自然语言等研究领域。现在它已广泛的应用在人工智能的研究中,它可以用来建造专家系统、自然语言理解、智能知识库等。Prolog语言最早由Aix-Marseille大学的Alain Colmerauer与Phillipe Roussel等人于60年代末研究开发。1972年被公认为是Prolog语言正式诞生的年份,自1972年以后,分支出多种Prolog的方言。最主要的两种方言为Edinburgh和Aix-Marseille。最早的Prolog解释器由Roussel建造,而第一个Prolog编译器则是David Warren编写的。Prolog一直在北美和欧洲被广泛使用。日本政府曾经为了建造智能计算机而用Prolog来开发ICOT第五代计算机系统。在早期的机器智能研究领域,Prolog曾经是主要的开发工具。80年代Borland开发的Turbo Prolog,进一步普及了Prolog的使用。1995年确定了ISO Prolog标准。有别于一般的函数式语言,prolog的程序是基于谓词逻辑的理论。最基本的写法是定义对象与对象之间的关系,之后可以用询问目标的方式来查询各种对象之间的关系。系统会自动进行匹配及回溯,找出所询问的答案。Prolog代码中以大写字母开头的元素是变量,字符串、数字或以小写字母开头的元素是常量。下划线(_)被称为匿名变量。表示事实:表示kate和bill是人(human),kate喜欢bill,而表示规则:表示对于两个对象XY,如果X喜欢Y,且Y喜欢X,那么他们是朋友。示例如下:快速排序示例(对list作排序):下面简洁的排序示例可以体会到为什么AI领域喜用Prolog:示范罗素悖论在Prolog下会导致Stack Overflow:

相关

  • 1型糖尿病1型糖尿病(旧称青少年糖尿病或胰岛素依赖型糖尿病)是糖尿病其中一种类型,患者的身体不能产生足够的胰岛素,导致血糖水平过高,典型症状包括:多尿、口渴、易饿以及体重下降;其他症状
  • 抗心律不整药抗心律失常药(英语:Antiarrhythmic agents)是一类用于抑制心脏非正常节律(心律失常)的药物,这些情况例如心房颤动、心房扑动、心室性心搏过速以及心室颤动。很多人试图将此类药物
  • 下胚层下胚层(Hypoblast)是指在胚胎发育过程中,位于二胚层胚盘(英语:Bilaminar_blastocyst)的上胚层(Epiblast)相对下方的一群立方形细胞。在小鼠胚胎发育过程中,下胚层于大约于第4.5天出现
  • 巯嘌呤巯嘌呤(英语:Mercaptopurine,简称6-MP,又名6-巯基嘌呤、巯基嘌呤或巯唑嘌呤)是一种硫嘌呤类化疗药物和免疫抑制剂。1951年,格特鲁德·B·埃利恩和乔治·H·希钦斯用干酪乳杆菌试验
  • 星系自转问题星系自转曲线(英语:Galaxy rotation curve)可以绘制成以恒星或气体的轨道速度为y轴,相对于至核心距离为x轴的图表。恒星围绕星系核心公转的速度在从星系核心开始的一个大范围的
  • 火部,为汉字索引中的部首之一,康熙字典214个部首中的第八十六个(四划的则为第二十六个)。就繁体和简体中文中,火部归于四划部首。火部通常是从上、下、左方均可为部字。当上方为
  • 礼炮号空间站礼炮计划(俄语:Салют)是由前苏联计划的首个空间站计划,其中包括了于1971年至1986年这15年间发射的一系列九个的单模块(single-module)空间站。该计划包括一系列六个科研站和
  • FeBrsub3/sub溴化铁,化学式为FeBr3,棕黄色或深红棕色固体。易溶于水,溶于水略显酸性,其水溶液可以结晶出暗绿色的FeBr3·6H2O。可溶于给电子溶剂(如乙醚、乙醇)中。固体溴化铁具有和氯化铁相似
  • FeI碘化铁(I)是一种无机化合物,化学式为FeI。碘化铁(I)不稳定,可以通过Fe(CO)2I的热分解得到。在高压(123~360 GPa)下,它的空间群为P1,晶胞参数a=4.257, b=4.256, c=4.262, α=100.9
  • 退行发育(Anaplasia)逆行性生长(Anaplasia),是指成熟的正常细胞非正常地复归未成熟的细胞,为恶性肿瘤(malignant neoplasms)的指标性症状。大多数癌细胞会导致细胞去分化,让细胞无限制的分裂。但发生在