
1 shyling 2016 年 2 月 28 日 我一直都有点疑问 func :: a -> [a] func x = yyy 这样写真的好看么...吹嘘的是类型系统,还要手动指明类型 |
2 levn 2016 年 2 月 28 日 via Android 学到 Monad Transformer 之类的话。。还会这么想么 。。 |
3 jiyinyiyong 2016 年 2 月 28 日 @shyling 不是为了好看了. Haskell 研究的类型系统是希望能帮助程序员把类型自动推导出来, 一般的都能推导出来, 然而在使用类型类(...没记清楚, 没学好)的情况下无法推导需要手写. 结果真实的场景下很多人都自己写... 其实 Haskell 吹嘘的不是可推导, 而是代数类型系统验证通过以后可靠性更好. 据说以后的 Dependent Type 实现后还更严格. |
4 jiyinyiyong 2016 年 2 月 28 日 表示自从被不可变数据洗脑我已经受不了 Javascript 那种坑人的 mutable data structure. 然而类型系统太复杂, Haskell 的还没学完, PureScript 又来新的类型, 太难对付了 |
5 ChiangDi 2016 年 2 月 28 日 你写个复杂的网站试试 |
6 shyling 2016 年 2 月 28 日 @jiyinyiyong 可能我是偏向于实用派的吧,在我看来 Programming Language 只是表达的工具,更喜欢那些容易写(读)出,易于实现自己心里的模型的语言(也可能是我对 fp 了解还不够深,我觉得世界就是过程式的,有状态的|木有数学的脑细胞啊) |
10 jiyinyiyong 2016 年 2 月 29 日 @shyling 搞 Haskell 的人一般距离实用派有点远, 他们很多都是搞研究的, 比如前几天看的采访, 这位大姐专门研究类型系统, 主业就是 fork GHC 试验新理论, 还带着学生一起搞: http://www.infoq.com/interviews/weirich-haskell-dependent-types 理论成果渐渐才能渗透到主流语言里被大量的程序员学习, 就像工地上盖楼的人不一定都要会计算建筑承重抗风 blabla 的数学的东西. Haskell 虽然认为过程式有问题不能直接搞, 但并不是把装的抛弃了的, 只是说用局部变量(只是像局部变量, 实际上用 Monad)把状态管理起来了. 比较绕, 但是理解的话还是会认为有道理的. 越到复杂问题越有感觉. |
11 shyling 2016 年 2 月 29 日 @jiyinyiyong 今天突然想到了个问题:如何用 haskell 炒菜 0 0 |
12 jiyinyiyong 2016 年 2 月 29 日 @shyling 我没 get 到这个 point... |
13 shyling 2016 年 2 月 29 日 @jiyinyiyong 意思是抽象出来炒菜的步骤(检查食材,出现错误的挽救办法 //例如盐放多了,炒菜的操作顺序) |
14 jiyinyiyong 2016 年 3 月 1 日 @shyling 好歹是图灵完全的语言, 这个事情是不怕的. 再不济你看用 Haskell 实现一门普通的脚本语言然后用这个脚本语言去写都可以的, 当然, 前提是 API 是现成的 :D |
15 shyling 2016 年 3 月 1 日 @jiyinyiyong 当然能实现啦,问题是怎么写好=。= |
16 shyling 2016 年 3 月 1 日 @jiyinyiyong 时间 /空间 /美观 综合考虑 |
17 bramblex 2016 年 3 月 1 日 |
20 bramblex 2016 年 3 月 1 日 @jiyinyiyong 类似 State Monad 这种东西, Monad 的作用是防止副作用扩散。比如 State Monad 就有一个 Unsafe 的,用的就是变量来管理 State 来提高性能。 对于过不过程式,这个东西没什么好讨论的,就是 CPS 变换的问题。 Haskell 里面的 do 语法糖就是干这事的。 |