【发布时间】:2017-02-07 03:49:55
【问题描述】:
我在跑步:
- GNU Emacs 24.4.1
- 堆栈版本 1.3.3
- 组织模式
- haskell 模式
我看过了:
- Emacs Org-Mode & Literate Haskell
- https://gist.github.com/reetinder/4022989
- https://wiki.haskell.org/Emacs/Literate_programming
- https://wiki.haskell.org/Literate_programming
- https://github.com/haskell/haskell-mode/issues/1429
虽然上面的要点看起来很有希望,但我还没有找到任何看起来是让 org-haskell 运行的权威方法(例如,melpa 上没有),当然也没有任何东西专门针对运行堆栈环境的复杂性,而是而不是使用我的全局 ghc。
当我尝试:
#+BEGIN_SRC haskell
let x = "test"
putStrLn x
#+END_SRC
我明白了
执行 Haskell 代码块
...永远挂起。当我 C-g 时,我看到:
GHCi, version 7.6.3: http://www.haskell.org/ghc/ :? for help
Loading package ghc-prim ... linking ... done.
Loading package integer-gmp ... linking ... done.
Loading package base ... linking ... done.
Some flags have not been recognized: prompt2, ghci |
ghci λ> let x = "TESTING!"
putStrLn x
"org-babel-haskell-eoe"
Prelude|
<interactive>:4:1: parse error on input `putStrLn'
ghci λ> "org-babel-haskell-eoe"
当我切换到 haskell 缓冲区时,我看到它已经真正评估了我发送的内容,它只是有这个 org-babel-haskell-eoe 错误并且永远不会将控制权返回给我的 org 会话。
这可能是因为我有自定义提示吗?使用 lambda 代替 Prelude> ?
【问题讨论】:
-
您可能会发现这个其他问题很有用:stackoverflow.com/questions/42081379/…
-
您需要先加载
ob-haskell.el(或将haskell 添加到org-babel-load-languages并重新启动emacs)才能尝试评估haskell 代码块。这至少应该摆脱“没有用于 haskell 的 org-babel-execute 函数”消息。 -
@brittUWaterloo,我相信您与我的这个问题有关。
-
@Nick,ob-haskell.el 从哪里来?
-
它是“官方”组织模式的一部分:你应该可以只说
(require 'ob-haskell)并加载它。但我不确定它是否有助于解决除了最初的问题之外的任何问题,你现在可能(或可能没有)已经解决了。
标签: haskell emacs org-mode literate-programming org-babel