問題タブ [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.

0 投票する
3 に答える
670 参照

haskell - GHCi のリロード間で環境を維持するにはどうすればよいですか?

基本的に:load name.hs、変数とバインディングがなくなったとき。

ghciにすべてを保持するように指示するオプションはありますか?

0 投票する
1 に答える
1696 参照

haskell - 非サンドボックス、非グローバル(ユーザー?)パッケージで「cabal-devghci」を使用するにはどうすればよいですか?

私はcabal-dev自分が取り組んでいるプロジェクトに挑戦しています。このプロジェクトはライブラリでありcabal-dev、サンドボックスバージョンを構築するのに最適ですが、ワークフローの一部に問題があります...

私はスクリプトを持っています。scratch.hsこれは(前に)何かを試すためcabal-devにロードします。ghciもちろん、作業している機能によって内容はscratch.hs時間とともに変化します。 scratch.hsこれはライブラリコードベースの一部ではなく、作業中の個人的なスクラッチスペースにすぎません。

さて、ghciサンドボックスをロードした状態でセッションを取得するためにcabal-dev ghci、それをロードscratch.hsすることができます。問題は、これが(設計上、そして賢明に)私のユーザーパッケージデータベースを除外することです。したがってscratch.hs、私のライブラリにないパッケージからモジュールを参照する場合build-depends(これは不合理ではありません-結局のところライブラリの一部ではありません)、それらのパッケージはそうではありません表示されないため、次のようなエラーが発生します。

ここで、この場合、scratch.hsインポートしたいのですData.Aeson.Genericaeson、私のライブラリにはありませんがbuild-depends(かなり適切に)、ユーザーパッケージデータベースにはあります。

では、どうすればこれを回避できますか?これらのカテゴリのいずれかで答えを想像することはできますが、見逃したカテゴリがあるかもしれません。

  1. によって作成されたサンドボックスと組み合わせて、ユーザーパッケージデータベースのパッケージを(選択的に)使用する方法cabal-dev。(おそらく私自身のcabal-dev ghciスタイルのスクリプトをローリングしますか?)

  2. 問題がなくなるようにワークフローを改善する方法についての提案。

パッケージをグローバルにインストールするだけでよいことはわかっていますが、この方法でグローバルパッケージデータベースを汚染することには消極的です(そしてcabal-devこれを明示的に阻止します)。

すべてのアドバイスに感謝します。

0 投票する
1 に答える
398 参照

haskell - GHCi を使用して、ソース コードにアクセスせずにモジュールをロードする

TestModule.hs単一のエクスポートされた最上位定義を含む単純なモジュール を作成しますtestval = 2。私はそれをコンパイルし、作成TestModule.oしてTestModule.hi. を削除し TestModule.hsます。次に、次のようにロードTestModule.oします。ghci

ご覧のとおり、TestModuleはスコープ内になく、アクセスできませんtestval。なんで?ソース ファイルにアクセスせずにこれを行うにはどうすればよいですか?

hint追加の質問:パッケージを使用して同じことを達成するにはどうすればよいですか?

ありがとう!

0 投票する
6 に答える
4702 参照

haskell - ghci を自動的にリロードし、ファイルの更新時に hlint を実行する

理想的な Haskell 編集ワークフローについて考えていました。

  • 3 つのターミナルを開きます (iterm2 を使用して分割)。
  • ターミナル 1 は、haskell ソース ファイルを編集するために vim を実行します。
  • ターミナル 2 は、現在のディレクトリまたはサブディレクトリ内のファイルが更新または作成されるたびに、変更されたファイルに対して hlint を自動的に実行します。
  • ターミナル 3 は ghci を実行し、変更されたファイルを自動的にロード/再ロードします。

誰かがこのようなものを設定しましたか?目標は、ファイルをvimに保存する以外に何もする必要なく、スタイルの問題やghciのコードを常に監視し、ghciを迅速に変更できるようにすることです。

自動化にはwatchrのようなものを使用することを考えていました。

0 投票する
2 に答える
292 参照

haskell - Haskell インタプリタ /w 型定義

型定義またはできればすべての種類のステートメントを受け入れる Haskell インタープリターはありますか?

私はすでに試しましたが、これらのどれもそれをしませんghcihugsこれが難しい/不可能である特定の理由はありますか?

0 投票する
2 に答える
2264 参照

haskell - プレリュードなしのghciセッション

この質問は#haskellircチャットで発生しました:

プレリュードをインポートせずにghciを開始するにはどうすればよいですか?

考えられる答えは明白であるように思われました:

ghci -XNoImplicitPrelude、またはでファイルをロードしますimport Prelude ()

後者は機能しているようですが、前者は奇妙なことに機能しません。ただし、import Prelude ()宣言されたインスタンスをプレリュードからインポートしますよね?Preludeをまったくロードせずにghciセッションを作成するより良い方法はありますか?

0 投票する
5 に答える
4762 参照

macos - GHCi のファイルから関数をロード中にエラーが発生しました

Haskell はまったくの初心者です。基本を理解するために、私は「Haskell を学んで大成功を収める」に取り組み始めました。ファイルから関数をロードするという単純な問題に固執しています。

ファイルが呼び出さbaby.hsれ、関数が含まれています

何もありません。で保存しました/Users/me

GHCi に入力:load babyすると、次のエラーが表示されます。

ターゲット `baby' は、モジュール名またはソース ファイルではありません。

私は Mac で作業しており、baby.hsTextEdit セットを使用してファイルを作成し、プレーン テキスト/UTF-8 ファイルを生成しました。私のホームディレクトリは/Users/me、GHCiからこれを確認する方法がわかりませんが、GHCiを実行する前にbashから確認したときのものだと思います。

私が間違っていることは何か分かりますか?

0 投票する
3 に答える
900 参照

haskell - どの libstdc++ 二重変換が必要かをどのように判断できますか?

.hs ファイルを ghci にロードしようとしたときに表示されるエラーは次のとおりです。

さらに調査すると、複数の stdc++ ライブラリがインストールされていることがわかりました

必要なものへのシンボリックリンクを作成できるのではないかと思いましたが、どのシンボリックリンクかわかりません。このOSを使用しています 2.6.35-22-server #33-Ubuntu SMP Sun Sep 19 20:48:58 UTC 2010 x86_64 GNU/Linux

それが何を望んでいるかを正確に伝えるにはどうすればよいですか?

0 投票する
1 に答える
1902 参照

haskell - HUnit を ghci にインポートできません

HUnit をインストールしたばかりで、それを ghci にインポートしたいと考えています。

また、私-vを助けるために を使用する方法がわかりません。

どうすればインポートできますか?

0 投票する
1 に答える
630 参照

haskell - FreeGlut が ghci で機能しない

「Glut」を使って小さなプログラムを書きました

GHC によってコンパイルされたプログラムは正常に実行されます (ghc --make t.hs) が、ghci からプログラムを実行しようとすると、ghci が次のメッセージでクラッシュします。

ghci から Glut プログラムを実行することは可能ですか?