我正在跑步:
我已经看过了:
虽然上面的要点看起来很有希望,但我还没有找到任何看起来像是一个权威的方式来运行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错误,并且永远不会将控制权返回给我的组织会话。
这是否因为我有自定义提示?使用lambda而不是Prelude&gt; ?
答案 0 :(得分:5)
这是不一个完整的答案:特别是,它甚至没有提到Stack。但是我(对Haskell完全无知)想知道如何让OP的测试程序在babel中运行。这是我发现的:
你需要一个haskell解释器;-)我在Fedora 24上,所以我安装了ghc-compiler软件包,我得到了ghci。
您需要haskell-mode
。我使用emacs包管理器从MELPA安装了它。这也安装了inf-haskell.el
默认情况下,inf-haskell
想要运行hugs
,因此我自定义haskell-program-name
并将其设置为&#34; ghci&#34;。
M-x load-library RET ob-haskell RET
代码块上的Cc Cc:第一次失败并且消息缓冲区显示&#34;缓冲区haskell.org不存在或没有进程&#34;。< / p>
但如果再次在代码块上执行C-c C-c,它会成功!
显然,ob-haskell.el
需要做一些工作 - 而且在我们进入Stack之前就已经知道了,其中我知道甚至比我知道的Haskell还要少,所以我将其作为一个练习感兴趣的读者:-)
编辑:Re。版本信息(在评论中要求):我保持接近最前沿。在这个时间点(2017-05-01),我运行Org mode version 9.0.5 (release_9.0.5-444-g998576 @ /home/nick/elisp/org-mode/lisp/)
和GNU Emacs 26.0.50 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.20.10) of 2017-04-14
答案 1 :(得分:2)
在安装{% extends 'base.html' %}
{% load django_tables2 %}
{% block pagecontent %}
<form id="form" action="/" method="post">
{% csrf_token %}
<div>
<h3>SCC Info Table</h3>
<table>
{% render_table table %}
</table>
</div>
<input type="submit" value="Save" id="save" class="btn" formmethod="post" />
</form>
{% endblock %}
和stack
(带有堆栈本身)之后,我要做的是在emacs中安装ghci
,然后将它们添加到intero
中:
init.el
之后,我可以在haskell代码块中进行C-c C-c操作,并在该代码块下获得结果。
答案 2 :(得分:1)
就我而言,它是 .ghci
,就像 Testare 的一样。当我注释掉 :set prompt "λ "
时,emacs 停止了冻结,但给出了消息 ‘org-babel-script-escape’ expects a string
。必须注释掉 :set +t
才能使其工作。
答案 3 :(得分:0)
可能是因为自定义提示:我有同样的问题,当我删除“:set + t”和“:set prompt”GHCI&gt;“来自〜/ .ghci时,它起作用。我摆弄了它有一些,似乎它会工作,只要你的自定义提示没有任何空格,除了结束(我改变我的“GHCI&gt;”,它的工作原理)。它似乎是它解析的正则表达式来自的信息假定提示中没有空格。