Haskell Platform をインストールしたばかりで、ghci は正常に動作しますが、何らかの理由で ghc を起動できません。起動してから約0.5秒でクラッシュします。
Haskell プラットフォーム ディレクトリに、次の「ghc 関連」の .exe があります: ghc ghc.pkg runghc
runghc.exe は「動作」しますが、空白の黒いターミナルが表示されるだけです。
ヘルプ!
あなたのコメントから推測すると、あなたはGHCとは何か、GHCiとは何かをよく理解していないと思います。GHC はグラスゴー Haskell コンパイラです。Haskell コードを実行可能ファイルにコンパイルするだけです。GHCi はインタラクティブな GHC であり、コードを入力して行ごとにコンパイルすることができます。ghci
コマンドラインから実行して GHCi を起動できますが、 を実行するときghc
は、何かを実行させるためにさらに引数を渡す必要があります。
たとえばHelloWorld.hs
、フォルダーC:\projects\haskell
にファイルがHelloWorld.hs
あり、内容が含まれている場合
module Main where
sayHello :: String -> String
sayHello name = "Hello, " ++ name ++ "!"
main :: IO ()
main = do
putStrLn "What is your name?"
name <- getLine
putStrLn $ sayHello name
コマンドラインを開いて(>
はプロンプトを示し、コマンドの一部ではありません)、実行できます
> cd C:\projects\haskell
> ghc --make HelloWorld.hs -o hello.exe
> hello.exe
What is your name?
bheklilr
Hello, bheklilr!
次のようなこともできます
> cd C:\projects\haskell
> ghci
Loading package ghc-prim ... linking ... done.
Loading package integer-gmp ... linking ... done.
Loading package base ... linking ... done.
Prelude> :load HelloWorld.hs
Ok, modules loaded: Main
*Main>
どの時点から次のようなことができますか
*Main> sayHello "World"
"Hello, World!"
*Main> sayHello $ sayHello "World"
"Hello, Hello, World!!"
*Main> :main
What is your name?
bheklilr
Hello, bheklilr!