对以下代码运行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写入的所有内容,因此代码块的评估应该给出预期的结果。对此的任何帮助将不胜感激。
更新(11/14/16 10:05 am):
当我使用以下组织代码时,我得到部分结果,但不是预期结果:
#+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>