虽然是自己独立想到的,但感觉很多人做过类似的东西。
因为最近在学 Haskell ,所以尝试着用 Haskell 写了一个。
现在支持的功能:
{{ copyright }}
。之后打算以插件的方式弄)项目主页:https://github.com/zeqing-guo/gin-haskell
一个例子:https://github.com/zeqing-guo/gin-haskell/issues/2
本人学习 Haskell 时间不长,第一次用 Haskell 写这么 real world 的东西,希望有大神指教(其实有的函数写得挺丑的,等期末结束重写那些函数=。=)
1
shajiquan 2015-12-13 01:15:20 +08:00
|
3
zhouyg 2015-12-14 11:58:38 +08:00
haskell 你是用什么编辑器的,有什么推荐没?
|
4
lyqx OP @zhouyg
Emacs ,准确地说是[spacemacs]( https://github.com/syl20bnr/spacemacs),它帮你配置好了 haskell 的[layer]( https://github.com/syl20bnr/spacemacs/tree/master/layers/%2Blang/haskell),补全缩进错误提示什么的都还不错的。原来也用过 Purcell 的[emacs 配置]( https://github.com/purcell/emacs.d),也还行。 Spacemacs 的效果: http://imgur.com/9E9Lg44 http://imgur.com/APbnaoY |
5
bramblex 2015-12-15 00:17:15 +08:00
Haskell 党前来点赞!
|
11
bramblex 2015-12-15 12:08:08 +08:00
@lyqx
其实这东西跟 Haskell 的 do 语法块干的是类似的东西。 比如在 Haskell 的 do 语法块里面: do str <- getLine return str => getLine >>= (\str-> return str) 而在我的 BlxScript 里面: str = asyncGetLine print str => callback str = print str asyncGetLine callback |
12
lyqx OP @bramblex
你这段话倒是提醒了我。我记得 CPS 和 Monad 在某种程度上是等价的。 刚才看到了这个, http://stackoverflow.com/questions/4525919/continuation-passing-style-vs-monads ,的确可以用 CPS 把代码写得像 Monad 。感觉很好玩 XD 对了,我不是很懂 BlxScript 的语法,你这段程序的 continuation 是什么。 |