Search code examples
haskellemacsorg-modeorg-babel

org-babel for haskell not works of eval haskell block


I am use org-mode blogging, I use org-babel to evaluate the code as following :

#+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’

I found the org-babel for haskell use infer-haskell mode to start session and eval the code. I also say the session was created, and if I don't define the function but directly putStrLn "hello" , it works.

hope anyone can fix the bug :)


Solution

  • #+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's babel mode is running the Haskell code with ghci. In ghci you are required to use let to declare functions.