注:对于下面讲到的大多数语言,我拥有的经验其实很少:我只是觉得他们背后的思想很赞,但对于它们没有任何相关的专业知识,所以有任何更正和错误请指出。...示例语言:Prolog, SQL
声明式编程已经存在了许多年,但大多数程序员仍然不知道它是怎样的概念。...简单来说:在大多数主流语言中,开发者是在描述如何解决一个特定的问题;在声明式语言中,你只需要描述你想要的结果,而语言本身确定如何到达那里。...例如,在Prolog语言中一个简单的数独求解器的代码只需要列出每行,每列,和一个解决的数独难题的对角线应该看起来的样子:
sudoku(Puzzle, Solution) :-
Solution =...S = [4,1,2,3,2,3,4,1,1,2,3,4,3,4,1,2]
不幸的是,声明式编程语言的性能开销比较大。上面的单纯排序算法的复杂度接近O(n!)