学了一周 haskell 的感受

2022-11-26 15:59:52 +08:00
 amlee
我声明了一个类型
我把这个类型变成了 Functor, Nice!
我把这个 Functor 变成了 Applicative, Nice!
我把这个 Applicative 变成 Monad, Nice!
哎,类型检查没报错唉,Nice!
哎,我写了啥来着? Fuck!
哎,我要干啥来着? Fuck!

用这玩意写代码的都是神仙,他奶奶的邱奇就是大罗金仙
2618 次点击
所在节点    分享发现
12 条回复
cmdOptionKana
2022-11-26 16:02:29 +08:00
我写纯函数式的感受也差不多, 写的时候很爽, 但后续维护就很头大, 看别人写的代码也很困难, 因为太灵活了.
xtreme1
2022-11-26 16:09:03 +08:00
也不一定非要用它写什么东西, 很多 PL 的文章都默认你会 Haskell, 学了还是有用的.
amlee
2022-11-26 16:16:38 +08:00
@xtreme1 我倒不是想用 haskell 写什么,只是越来越多的语言或多或少的引入了些 FP 的思想进去,我就想了解下这玩意到底是什么。
makelove
2022-11-26 16:35:47 +08:00
@amlee 加少量 fp 思想挺好的,但我只接受象 js 界那样加点料的程度,如果真全面纯 fp 化就受不了了
thedrwu
2022-11-26 17:22:33 +08:00
2008 年那会儿读了 real world haskell 于是用了几年,感觉跟现在的 rust 一样,很多优化的潜力没有发觉出来,monad transformer 慢得不能用
thedrwu
2022-11-26 17:22:51 +08:00
发掘
luozic
2022-11-26 18:19:29 +08:00
可以把代码看看否?
luozic
2022-11-26 18:20:29 +08:00
如果用类似 typescript +any 那种用法,啥类型检测也没用啊。
amlee
2022-11-26 18:35:43 +08:00
luozic
2022-11-26 18:51:24 +08:00
newtype ST a = Trans (State -> (a, State))

rev :: Num a => ST a
rev = Trans (\s -> if s == Yes then (0, No) else (1, Yes))
ALXG
2022-11-27 17:24:35 +08:00
你看到问题以后始终处于迭代解决的动机就好了.
Hawthorne
2022-11-27 18:23:48 +08:00
学院派和田野派、工程派的分野还是很明显的

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/898095

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX