对以下代码运行 babel 源代码块评估会生成一个空的结果块:
#+NAME test
#+BEGIN_SRC haskell :tangle test.hs :results output
let sayHello x = putStrLn ("Hello, " ++ x ++ "!")
sayHello "Dave"
#+END_SRC
#+RESULTS:
然而,当直接在 ghci 中输入以上行时,我得到了预期的结果:
Prelude> let sayHello x = putStrLn ("Hello, " ++ x ++ "!")
Prelude> sayHello "Dave"
Hello, Dave!
Prelude>
根据 org babel 文档,“:results output”选项捕获从 STDOUT 写入的所有内容,因此代码块的评估应该给出预期的结果。对此的任何帮助将不胜感激。
更新(16 年 11 月 14 日上午 10:05):
当我使用以下组织代码时,我得到了部分结果,但不是预期的结果:
#+NAME test
#+BEGIN_SRC haskell :tangle test.hs :results output replace
let sayHello x = putStrLn ("Hello, " ++ x ++ "!")
sayHello "Dave"
sayHello "Steve"
#+END_SRC
#+RESULTS:
:
: Hello, Dave!
当我在 babel eval 之后查看 haskell 缓冲区时,我看到以下内容:
Prelude> let sayHello x = putStrLn ("Hello, " ++ x ++ "!")
sayHello "Dave"
sayHello "Steve"
"org-babel-haskell-eoe"
Prelude> Hello, Dave!
Prelude> Hello, Steve!
Prelude> "org-babel-haskell-eoe"
Prelude>