PLT 板


LINE

看板 PLT  RSS
※ 引述《godfat (godfat 真常)》之铭言: : 我有个疑问,purely functional 在处理很多事情上会显得很麻烦, : 例如 I/O, 或其他本身就具有各种 state 的问题…。如此一来, : purely functional 是否变得有些过分执着…? 我是觉得还好啦。如果在语意中要描述有副作用的函数, 本来 就是要把 state 当作另一个 argument 传进去,再把新 state 传回来。在纯 functional 语言中也是这样写的。 当然,数学不比程式,前者不怎麽考虑模组化或是维护的问题。 如果程式大了或复杂了,这麽传来传去很麻烦而且容易写错。 所以 Haskell 是用 monad 把这些细节给包装起来。 後来这也影响到 semantics 的研究。有些人提倡 semantics 也应该用 monad 组合起来。不过真正这麽做的例子好像不多就是了。 : : 但实际上 "不纯" (impure) 的函数式语言反而比较多,像早年比较热门的 : : LISP, Scheme 到 ML, 或总是被当成明日之星,却始终没起色的 Erlang, : : 都不是纯函数式语言。 补充一点:以上这些语言都是 eager 的。这可能是因为要在 eager 语言 里头加入副作用比较容易,设计的人都蛮难抗拒这诱惑的。多一个 feature 好像也没什麽不好嘛。 在 lazy 语言之中则不然,因为 lazy 语言中难以预测一段 程式何时真正会被 eval 到。如果有 side effect 往往就天下大 乱了。所以 lazy 语言不得不是 pure 的。 前阵子读 Haskell 的历史时读到这个八卦: 设计 Scheme 时 lazy evaluation 刚刚受到注意。设计者曾考虑过,到底是要 让 Scheme lazy 还是 eager? 後来选择了後者,因为他们觉得 在一个 eager 的语言中模拟 lazy evaluation 比较容易。反过 来比较难。 这可能只是习惯的问题。像我就觉得反过来比较容易(只要到处 都加上 case 就好了不是吗.. ),另一个方向我还真不太会写。 但总之他们就这麽决定了。如果我没记错,当时还没有 Haskell。 写这段故事的人说,如果他们决定把 Scheme 设计成一个 lazy 语言,後来的程式语言版图和演进可能就大大不同了。 --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 123.192.157.71







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:WOW站内搜寻

TOP