haskell - 您如何解释像 Ring 和 Yesod 这样的纯功能 Web 服务器不是 MVC?

标签 haskell model-view-controller clojure functional-programming yesod

关闭。这个问题是opinion-based .它目前不接受答案。












想改善这个问题吗?更新问题,以便可以通过 editing this post 用事实和引文回答问题.

6年前关闭。




Improve this question




传统上,人们将 Web 应用程序视为 MVC - 它假定面向对象的上下文。

函数式编程对此提出了批评——并提供了一个使用高阶函数和不可变数据结构的模型。

我的问题是:您如何解释像 Ring 和 Yesod 这样的纯功能 Web 服务器不是 MVC?

最佳答案

我将尝试就 Yesod 回答这个问题。

How do you explain that purely functional web servers like Ring and Yesod are not MVCs?



Yesod 不是网络服务器。 Yesod 是一个网络框架。 warp是与 Yesod 一起使用的推荐 Web 服务器。

How do you explain that purely functional web servers like Ring and Yesod are not MVCs?



这不一定是真的。您可以使用 templates如 View ,persistent作为模型和 routing and handing作为 Controller 。事实上,scaffolding site松散地遵循MVC方法。

Functional programming critiques this - and offers a model using higher order functions and immutable data structures.



这与这个MVC无关。 MVC 只是一种设计模式。高阶函数和不可变数据结构不会阻止您遵循某种架构或设计模式。

关于haskell - 您如何解释像 Ring 和 Yesod 这样的纯功能 Web 服务器不是 MVC?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32010006/

相关文章:

macos - Clojure 在本地目录中找不到 .clj。和 ./classes 在 CLASSPATH

parsing - Haskell 解析器到 AST

haskell - 在 HList 中查找元素

clojure - 如何制作自定义 clojure.spec 生成器?

model-view-controller - 使用Spring,映射到web.xml中的root,找不到静态资源

javascript - 使用允许新模型和 Model.find() 的 Node 创建我自己的模型

api - 与来自 Clojure 的 REST API 交互

haskell - Haskell 中的字节字符串、文本和编码

haskell - Monad Transformer (RandT) 内的多个独立 ST/State monad...复杂的包装/展开

php - PHP 的 MVC 方法中的 Hello World 示例