2013-11-18 21:26 "@SpeedVan"的内容
传统方式只是让机器运转而已,而且很难模仿出逻辑
我很赞同这句话,你这段话让我有兴趣研究FP和逻辑之间关系,找到一篇文章:
问题:
我一直在阅读了许多文章试图了解函数和逻辑编程之间的差异,但我到目前为止只知道,逻辑编程定义方案是通过数学表达式。但是,这样的事情是不相关的逻辑编程。
答案:
我不会说,逻辑编程定义是通过数学表达式,这听起来更像是函数式编程。逻辑编程是使用逻辑表达式(当然,最终的逻辑是数学)。
在我看来,函数和逻辑编程的主要区别是“积木building blocks”:函数式编程使用函数,而逻辑编程使用谓词。谓词不是一个函数,它没有返回值。根据它的参数值,它的值可能是True或false,如果一些值是不确定的(通常情况下),我们将尝试找到谓词真值。
Prolog语言使用的一种特殊形式命名Horn子句属于一阶逻辑的逻辑条款; Hilog使用高阶逻辑的句子。
有人说,逻辑编程是函数编程的一个超集,因为每个函数可表示为一个谓词。
比如foo(x,y) -> x+y. 写成:
foo(X,Y,ReturnValue):-
ReturnValue is X+Y.
逻辑和函数之间的另一个区别是回溯backtracking。
..
完。
抄一段话:
Imperative programming is painting, logic programming is sculpture, declarative programming is word art, functional programming process art
命令式编程是绘画,逻辑编程是雕塑,声明编程是艺术字,函数式编程是工艺美术品
[该贴被banq于2013-11-19 08:22修改过]