Prolog 列表和运算符 <4>

今天我们在这篇 post 中介绍一下列表和运算符, 相信熟悉或者玩过函数式编程语言的朋友可能已经在函数式编程中掌握了列表, 而今天我带来的是逻辑式编程语言 Prolog 中的列表, 以及它的使用. 当然我还会在今天简单介绍一下 Prolog 中的运算符(Arithmetic). 不过这一部分的内容还是很简单的, 我们主要关注的部分就是 List. ##列表 列表, 这个在函数式编程中非常常见的数据结构, 今天在逻辑式编程中也逐渐崭露头角. ###什么是列表? A... »

FP and OOP

FP 和 OOP 是目前主流的编程范式.我们不谈论这两种编程范式的优劣, 仅仅讨论一下 FP 和 OOP 两者的差别. ##Decomposition 如何将一个任务分解, 这是任何一位Programmer都需要考虑的事情, 而FP和OOP对于如何将一个大型程序或者任务分解有着完全不同的方法. 在 FP 中, 我们通常将程序分解为有着不同操作的函数 在 OOP 中,... »

Author image

Prolog 递归 <3>

在这一次的 post 中, 我们将要介绍 Prolog 中的递归定义, 也就是说, 一个 predicate 如果它定义了一个或多个引用自己的规则, 那么这个 predicate 就是递归的. 递归的定义非常地简单: is_digesting(X,Y):-just_ate(X,Y). is_digesting(X,Y):- just_ate(X,Z), is_digesting(Z,Y). just_ate(mosquito,blood(john)). just_ate(frog,mosquito).... »

Author image

Prolog 匹配 <2>

这篇 post 有两个主要的目的: 讨论 Prolog 中的匹配, 解释匹配(match)与相等的不同. 使用 Prolog 搜索的机制解决一些问题. ##Matching Prolog 中有三种不同的 term, 分别的 constants, variables 和 complex terms.... »

Author image

Prolog 基础 <1>

##为什么学习 Prolog? Prolog 是种逻辑式的编程语言. 我第一次见到这个名字的时候大约实在我学习 SICP 的过程中, 实现了一个简单的逻辑式语言的解释器. 之后我又在 CTMCP 一书中的 Relational Programming 和 Logical Programming 中多次见到 Prolog 的身影, 加上我本身对于各种编程语言非常地感兴趣,... »

Author image