用haskell写brainfuck解释器

最近在看 Learn you a haskell for great good,刚好看到IO。因为实在想不到去哪写haskell练手,于是就去codewars上面找水题刷了。

感觉给了我最大震撼的FP是scheme,给了我现代FP体验的是Coq(好多东西和haskell无缝衔接,除了记号方面的适应),现在到Haskell了最大的体会就是这玩意提供了很多抽象,这是极好的,因为有很多东西我在以前都没有想过可以这么看待,现在就觉得比较自然了。但是俺目前好像还没有找到啥用上这些抽象的地方,于是有点懵逼

于是就到了喜闻乐见的写解释器环节,仍然是写一个brainfuck解释器,不过因为本菜菜的IO还玩得不是很溜,于是就只写了一个没有输入、只有最后输出单个结果的阉割版,但是也足够说明很多问题了。

最爽的大概就是pattern match和lazy evaluation了,前者使得各种分支被简化,后者让图灵机里“无限长的纸带”非常容易就能实现。此外类似where这样的语法写起来也很舒服,有写定语从句的感觉。

丢个链接就跑,后面看完了haskell的IO大概会加上bf的IO的(一定不咕!)

posted @ 2022-01-17 23:51  jjppp  阅读(70)  评论(0编辑  收藏  举报