如今所教授的软件工程完全专注于面向对象的编程和面向世界的“自然”面向对象视图。 有一个详细的方法,描述了如何通过几个步骤和许多(UML)工件(如用例图或类图)将域模型转换为类模型。 许多程序员已经内化了这种方法,并且对如何从头开始devise一个面向对象的应用程序有了一个好主意。 新的炒作function编程,这是在许多书籍和教程中教授。 但是function软件工程呢? 在阅读Lisp和Clojure时,我发现了两个有趣的陈述: function程序通常是自下而上的,而不是自上而下(“On Lisp”,Paul Graham) function程序员使用OO程序员使用对象/类的地图(“Clojure for Java程序员”,由Rich Hickley讲话)。 那么,一个function性应用程序的系统化(基于模型)devise的方法是什么呢,例如在Lisp或Clojure中呢? 什么是常见步骤,我使用的是什么工件,我如何将它们从问题空间映射到解决scheme空间?