也许我看起来很奇怪。随意编辑等。什么是FP.net的ASP?
我正在学习FP并感到相当困惑,因为我无法将我每天使用的技术(字面意思是ASP.Net)划分为FP方面的某些逻辑部分。
现在我认为所有ASP.Net机器都像一个大状态monad,为此我通常使用OnPreRender就像调用ASP-net不可知代码一样。我把aspx看成是一种元编程。 什么是用户控制?自定义控制?我们应该区分什么上下文(函数环境) - http上下文?控制背景?页面上下文?也许我看不到像处理页面处理程序那样显而易见的事情== delegates == lambdas? 我基本上对吗?任何人都可以对ASP.Net提出更新的看法 - 特别是经典的吗?
知道'网络形式 - 吮吸'是没有意义的 - 我想知道如何在这个特定的环境中使用FP的力量和'turing-complete'。
答案 0 :(得分:1)
你可以这样想,但我不确定它是否太有用了。问题是ASP.Net本身并不是以函数式编写的。
从副作用和功能构成方面开始查看你写的东西(在任何框架/语言中)会更容易和有用。开始依赖于较少的状态(除非你必须在ASP.Net中),而是开始考虑不可变数据,输入和输出。
作为一个小例子,不是考虑用连接修改我的字符串,而是开始使用像String.format这样的函数(方法)。在尝试将功能样式应用于OO环境时,像这样的小事将会有很大帮助。
要真正开始从您的FP学习中受益,请尝试考虑组合和可组合性(真正的单词??)而不是OO层次结构和继承。
答案 1 :(得分:0)
ASP.Net是一种IO monad。 monad中可用的IO操作类型是从HTTP请求读取并写入HTTP响应的操作。
查看用纯函数式语言编写的Web应用程序服务器可能很有教育意义。 Happstack完全是用Haskell编写的。