問題タブ [ghci]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
haskell - GHCiがこのステートメントを奇妙に入力するのはなぜですか?
stackoverflowに関する質問に答えたところ、GHCi(インタラクティブ)がletステートメントで制限が強すぎるタイプを割り当てていることに気付きました。つまり、コードが与えられると、
( https://stackoverflow.com/questions/6281813/maximum-of-list-and-count-of-repeat-maximum-number/6283594#6283594への私の回答のように)f
、これをghciに入力すると、次のタイプ情報が得られます
一方、式のタイプを要求するだけで、正しい結果、つまり。が得られますOrd a => [a] -> (a, Int)
。ghc7.0.3を使用しています。
haskell - GHCi Windows を使用した Haskell コンパイルの問題
WinHugsインタープリターが正常に動作することをテストした haskell アプリケーションを開発しました.. WinGHCiを使用して同じアプリケーションをコンパイルしようとすると、エラーが表示されます
テキストを表示するため\t
にIOプログラムで使用しました
例 :-putStr "\n \n \t \t Hello ! "
解決策はありますか?
haskell - 欠落しているインスタンスエラー、モジュールの読み込み、GHCi
それは別の質問から来ましたが、状況は変わりました。
Parsec関数'parse'とクラス'Stream'の型シグネチャ
私は今import
、物事を変えるために何をするのか疑問に思っています。
file:RunParse.hs
(私はghc 7.0.4を使用しています)
ファイルをghciにロードします。
それは私に教えてくれます:
次に、(1)または(2)のいずれかを追加しました。
その後:l RunParse
、ロードに成功しました。
次に、(1)と(2)をすべて削除して:l RunParse
も、成功しました。
次に、ghciを:q
終了し、ghciを再起動します。開始と同じように、ロードに失敗しました。
これはghcのバグですか、それとももっと知っておくべきimport
ですか?
PS RunParse.hsは、ghc -c --make RunParse.hs
(1)と(2)なしで失敗しました。
haskell - Haskell:GHCがmainメソッドに対して推測した型が完全ではないのはなぜですか?
たとえば、StackOverflowの質問に答えてDonStewartが書いたコードを見てみましょう。
GHCiにロードします。
mainの型アノテーションが呼び出されているという事実を反映していないのはなぜgetArgs :: IO [String]
ですか?
バイナリを実行すると、引数を指定できます。
しかし、GHCiでは、次のことはできません。エラーが発生し<prog> 145
ます。このプログラムをGHCiでどのように実行し、議論をしますか。Just 100
main 145
haskell - GHCを使用してhsファイルをコンパイルする際の-iオプションと、GHCiで同じことを行う方法は何ですか?
OK、-i
GHCを使用してコンパイルするときに、コンパイルオプションを使用して、フォルダーをhaskellソースに指定しています。
コンパイル中にこれらのファイルを「ライブラリ」として使用することは理解していますが、GHCiで同じことを行うことはできますか?
私は通常、haskell のパッケージ化された lib egimport Data.List
またはをインポートし:m +Data.List
ます。
試してみましたimport /d/haskell/src
-- うまくいきません!
EDIT
Haskell doc から: Chapter 2 Using GHCi GHCi
モード––make
では、-i
オプションはソース ファイルの検索パスを指定するために使用されますが、標準のバッチ コンパイル モードでは-i
オプションはインターフェイス ファイルの検索パスを指定するために使用されます。
haskell - Haskell / GHCi - 異なるディレクトリからモジュールをロードする
私の Haskell アプリケーションのディレクトリ構造は次のとおりです。
モジュールはSubsystem
モジュールをインポートしUtils
ます。このコードを GHCi でハンドテストしたいと思います。
問題は、GHCi が (現在のディレクトリ) で利用可能なモジュールのみを探しているように見えることです'.'
。そのため、サブシステム フォルダーにコピーUtils.hs
し、手動でテストすることができましたSubsytem.hs
。これを行うより良い方法はありますか?たとえば、ディレクトリで GHCi を起動し、 ディレクトリとディレクトリでモジュールを検索させたいとsrc
します。GHCiへのモジュールパスを指定できますか?./utils
./subsystem
haskell - do / while / letブロックで変数の型を出力する方法はありますか?
でネストされた変数の推定型を出力する方法はありますghci
か? コードを考えてみましょう。
次に、 のタイプを照会するとよいでしょう。g
たとえば、:t f.g
が出力されInt -> Int
ます。
haskell - Haskell の型推論の奇妙さ
ghci からの次の出力を見てください。
look
の推定型が の型と異なるのはなぜflip Data.Map.lookup
ですか?
あなたにいくつかの文脈を与えるために。最初は小さなプログラムがあり、コンパイラエラーが発生する理由を理解しようとしていました:
Ghci の反応:
このバリエーションはうまくコンパイルできることがわかりました (型定義は同じです)。
そして、いくつかの実験の後、 type of をlook
明示的に配置すると、最初のバージョンもうまくコンパイルされることが判明しました。
それが私の最初の質問につながります。
haskell - プロンプトでモナド?
GHCi プロンプトで任意の Monad インスタンスとインクリメンタルに対話することは可能ですか?
「do」コマンドを対話的に入力できます。
しかし、私が知る限り、すべてが強制的に IO () モナドに入れられます。代わりに任意のモナドとやり取りしたい場合はどうすればよいですか?
コマンドのシーケンス全体をジャイアント内に記述しdo { ... }
たり、中置演算子を直接使用したりする必要がありますか? それは問題ありませんが、任意のモナドを「入力」して、一度に 1 行ずつ操作する方がずっと好きです。
可能?
haskell - この Haskell は、拡張されたときにあいまいな型について不平を言うのはなぜですか?
以下は True を返します (2147483647 は素数であるため)。
以下のように拡張しようとすると機能しないのはなぜですか?
よくわかりませんが、床の使用から RealFrac が発生するのはなぜですか? floor が RealFrac を取り、Integrals を作成したと思いましたか? さらに、上記の例に不満はありませんでした。そのときと同じように、より多くの整数を入力しているだけです。