5

我正在使用 org-mode 博客,我使用 org-babel 评估代码如下:

#+BEGIN_SRC haskell
import Data.Function (fix)

f :: Int -> Int
f = (+ 1)

main :: IO ()
main = do
      putStrLn $ show $ f 1
#+END_SRC

#+RESULTS:
: <interactive>:9:25: Not in scope: ‘f’

我发现用于 haskell 的 org-babel 使用 infer-haskell 模式来启动会话并评估代码。我还说创建了会话,如果我不定义函数而是直接 putStrLn "hello" ,它可以工作。

希望任何人都可以修复错误:)

4

2 回答 2

5

本文中,Yoshinari Nomura 描述了一种runhaskell通过 Ruby 脚本评估 Haskell 块的方法。我不懂日语,所以我无法翻译细节,但该方法允许我运行 haskell 块,而无需专门为解释器编写。

于 2016-12-01T21:38:43.347 回答
3
#+BEGIN_SRC haskell
import Data.Function (fix)

f :: Int -> Int
let f = (+ 1)

main :: IO ()
main = do
      putStrLn $ show $ f 1
#+END_SRC

#+RESULTS:
: 2

Org 的 babel 模式是使用 ghci 运行 Haskell 代码。在 ghci 中,您需要使用 let 来声明函数。

于 2015-03-09T08:25:56.260 回答