加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

scala – 在FP中处理POST的正确方法是什么?

发布时间:2020-12-16 08:59:28 所属栏目:安全 来源:网络整理
导读:我刚刚开始使用FP而我正在使用 Scala,这可能不是最好的方式,因为如果情况变得艰难,我总能回到命令式的风格.我只是不愿意.我有一个非常具体的问题,指出我对FP的理解存在更广泛的空白. 当Web应用程序正在处理GET请求时,用户需要网站上已存在的信息.应用程序只
我刚刚开始使用FP而我正在使用 Scala,这可能不是最好的方式,因为如果情况变得艰难,我总能回到命令式的风格.我只是不愿意.我有一个非常具体的问题,指出我对FP的理解存在更广泛的空白.

当Web应用程序正在处理GET请求时,用户需要网站上已存在的信息.应用程序只需要以某种方式处理和格式化数据. FB方式很明确.

当Web应用程序正在处理POST请求时,用户希望更改站点上保存的信息.确实,信息通常不在应用程序变量中,它存在于数据库或平面文件中,但仍然,我感觉我没有正确地使用FP.

是否有处理FP语言中静态数据更新的模式?

我对此的模糊描述是应用程序交给请求和当时的站点状态.应用程序执行其操作并返回新的站点状态.如果自应用程序启动后当前站点状态没有改变,则新状态变为当前状态,并且回复被发送回浏览器(这是我对Clojure风格的暗淡图像);如果当前状态已经改变(通过另一个线程,那么,其他事情发生了……

解决方法

在纯FP环境中处理此类问题的一种方法是在Haskell中使用monad(例如IO和State),但在Clean中有一些替代方法,如“unique types”(只允许对一个值进行一次引用).

这里没什么可说的:如果你有可变的状态,那么你需要以某种方式限制对它的访问,以这种方式,该状态的每个变化都被认为是该结构的其他部分的“新版本” .例如.您可以将Haskell的IO视为“世界其他地方”,但附带一种时钟.如果您使用IO执行某些操作,则时钟会打勾,并且您再也看不到相同的IO.下次你触摸它时,它是另一个IO,另一个世界,你所做的一切都已经发生了.

在现实生活中,你可以“看到”电影中的事物如何“改变” – 这是必要的观点.但是如果你抓住这部电影,你会看到一串不可变的小图片,没有任何“改变”的痕迹 – 这就是FP视图.两个视图在其自己的上下文中都是有效且“真实”的.

但是,如果你使用Scala,你可以拥有可变状态 – 这里没问题. Scala根本不需要任何特殊处理,使用它没有任何问题(虽然它被认为是“好的风格”,以保持“不纯”的斑点尽可能小).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读