2

私の XP ボックスは Haskell Platform バージョン 6.12.3 を使用しています

.ghci ファイルに以下を含めます。

:def test \_ -> return $ ":load c:\scripts\haskell\test.hs"

これで、test.hs スクリプトをコンパイルして読み込むことができます:test。ただし、使用することもできます:t, :te or :tes。これは、パターン マッチングと呼ばれる Haskell のイディオムだと思います。残念ながら、私の :test コマンド:tでは、Haskell コマンドの短縮形として を使用できなくなりました:type

:tのエイリアスに干渉しない「test」など、「t」で始まる単語全体で関数を呼び出すにはどうすればよい:typeですか?

4

3 に答える 3

4

を使用して、コマンドのエイリアスを作成できます:def

:def t return . (":type "++)

:tのエイリアスに干渉しない「test」など、「t」で始まる単語全体で関数を呼び出すにはどうすればよい:typeですか?

これまで、GHCiコマンドについて説明してきました。関数名はコロンで始まらず、部分的な関数名のオートコンプリートはありません。

于 2010-11-19T16:58:44.510 に答える
4

あなたの質問では、次の 2 つの別個のものを混同しています。コロンで始まり、実行中に GHCi と対話できるようにするGHCi コマンド。Haskell functionsは通常の名前を持ち、GHCi 内で実行できます (ただし、一般的に言えば、クエリはできません)。Haskell のどのチュートリアルも、通常の関数については役に立ちます。GHCi コマンドについては、おそらくGHC マニュアルの GHCi に関するセクションが最適なリファレンスです。コマンドに関するサブセクションもあります。

の使用を回復するには、ヒートシンクの提案が最適だと思います:t。GHCi は、コマンドのプレフィックスが何であるかを判断し、代わりにそれを実行することで、あなたを助けようとします。これはパターン マッチングとは関係がないことに注意してください。パターン マッチングは、次のようなコンストラクタを介してデータを検査する Haskell 関数を記述することと関係があります。

null :: [a] -> Bool
null []    = True
null (_:_) = False
于 2010-11-19T18:31:20.137 に答える
0

「Learn You a Haskell」のはじめの章から。

「対話モードは、プロンプトで ghci と入力することで呼び出されます。たとえば、myfunctions.hs という名前のファイルでいくつかの関数を定義している場合は、:l myfunctions と入力してそれらの関数をロードし、それらで遊ぶことができます。 myfunctions.hs が ghci が呼び出されたのと同じフォルダーにある場合. .hs スクリプトを変更する場合は、:l myfunctions を再度実行するか、:r を実行してください。これは、現在のスクリプトをリロードするため同等です。

そもそもなぜあなたがしたことをしたのか、ちょっと混乱していますか?説明できますか?余分な .hs を入力するのはそれほど手間ではありません

test.hs 

このようにすると、ファイルをロードしていることを思い出させるという利点もあります。

于 2014-03-17T06:03:55.067 に答える