Tag: function 编程

如何在函数式编程语言中实现Rails类型webapp中的“模型”?

在MVC Web开发框架(如Ruby on Rails,Django和CakePHP)中,HTTP请求被路由到控制器,控制器获取通常持久存储到后端数据库存储的对象。 这些对象代表用户,博客post等内容,并且通常在其方法中包含用于权限,获取和/或变异其他对象,validation等的逻辑。 这些框架都非常面向对象。 我最近一直在阅读关于函数式编程的文章,它似乎带来了诸如可测试性,简洁性,模块性等巨大的好处。然而,我见过的函数式编程的大多数例子都实现了诸如quicksort或fibonnacci序列之类的琐碎function,而不是复杂的webapps。 我看了几个“function”的Web框架,他们似乎都很好地实现了视图和控制器,但很大程度上跳过了整个“模型”和“持久性”部分。 (我正在谈论更多像Compojure这样的框架,这些框架应该是纯粹的function,而不是一些方便似乎使用Scala的OO部分用于模型的东西 – 但如果我在这里错了,请纠正我。) 我还没有看到如何使用函数式编程来提供OO编程提供的隐喻,即表映射到对象,以及对象可以提供强大的封装逻辑(如权限和validation)的方法。 此外,使用SQL查询来保存数据的整个概念似乎违反了整个“副作用”概念。 有人可以解释如何在function编程的Web框架中实现“模型”层吗?