3

对以下代码运行 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> 
4

0 回答 0