0

Haskell Platform をインストールしたばかりで、ghci は正常に動作しますが、何らかの理由で ghc を起動できません。起動してから約0.5秒でクラッシュします。

Haskell プラットフォーム ディレクトリに、次の「ghc 関連」の .exe があります: ghc ghc.pkg runghc

runghc.exe は「動作」しますが、空白の黒いターミナルが表示されるだけです。

ヘルプ!

4

1 に答える 1

1

あなたのコメントから推測すると、あなたは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!
于 2013-10-06T13:01:32.327 に答える