【问题标题】:org-babel for haskell not works of eval haskell blockhaskell 的 org-babel 不适用于 eval haskell 块
【发布时间】:2015-03-08 14:45:11
【问题描述】:

我正在使用 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" ,它可以工作。

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

【问题讨论】:

    标签: haskell emacs org-mode org-babel


    【解决方案1】:

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

    【讨论】:

    • 在尝试了 2 个小时后,这节省了我的时间......谢谢。
    【解决方案2】:
    #+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 来声明函数。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-13
    • 1970-01-01
    • 2022-01-04
    • 1970-01-01
    • 2011-01-28
    • 1970-01-01
    相关资源
    最近更新 更多