問題タブ [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 のリロード間で環境を維持するにはどうすればよいですか?
基本的に:load name.hs
、変数とバインディングがなくなったとき。
ghciにすべてを保持するように指示するオプションはありますか?
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.Generic
がaeson
、私のライブラリにはありませんがbuild-depends
(かなり適切に)、ユーザーパッケージデータベースにはあります。
では、どうすればこれを回避できますか?これらのカテゴリのいずれかで答えを想像することはできますが、見逃したカテゴリがあるかもしれません。
によって作成されたサンドボックスと組み合わせて、ユーザーパッケージデータベースのパッケージを(選択的に)使用する方法
cabal-dev
。(おそらく私自身のcabal-dev ghci
スタイルのスクリプトをローリングしますか?)問題がなくなるようにワークフローを改善する方法についての提案。
パッケージをグローバルにインストールするだけでよいことはわかっていますが、この方法でグローバルパッケージデータベースを汚染することには消極的です(そしてcabal-dev
これを明示的に阻止します)。
すべてのアドバイスに感謝します。
haskell - GHCi を使用して、ソース コードにアクセスせずにモジュールをロードする
TestModule.hs
単一のエクスポートされた最上位定義を含む単純なモジュール を作成しますtestval = 2
。私はそれをコンパイルし、作成TestModule.o
してTestModule.hi
. を削除し TestModule.hs
ます。次に、次のようにロードTestModule.o
します。ghci
ご覧のとおり、TestModule
はスコープ内になく、アクセスできませんtestval
。なんで?ソース ファイルにアクセスせずにこれを行うにはどうすればよいですか?
hint
追加の質問:パッケージを使用して同じことを達成するにはどうすればよいですか?
ありがとう!
haskell - ghci を自動的にリロードし、ファイルの更新時に hlint を実行する
理想的な Haskell 編集ワークフローについて考えていました。
- 3 つのターミナルを開きます (iterm2 を使用して分割)。
- ターミナル 1 は、haskell ソース ファイルを編集するために vim を実行します。
- ターミナル 2 は、現在のディレクトリまたはサブディレクトリ内のファイルが更新または作成されるたびに、変更されたファイルに対して hlint を自動的に実行します。
- ターミナル 3 は ghci を実行し、変更されたファイルを自動的にロード/再ロードします。
誰かがこのようなものを設定しましたか?目標は、ファイルをvimに保存する以外に何もする必要なく、スタイルの問題やghciのコードを常に監視し、ghciを迅速に変更できるようにすることです。
自動化にはwatchrのようなものを使用することを考えていました。
haskell - Haskell インタプリタ /w 型定義
型定義またはできればすべての種類のステートメントを受け入れる Haskell インタープリターはありますか?
私はすでに試しましたが、これらのどれもそれをしませんghci
。hugs
これが難しい/不可能である特定の理由はありますか?
haskell - プレリュードなしのghciセッション
この質問は#haskellircチャットで発生しました:
プレリュードをインポートせずにghciを開始するにはどうすればよいですか?
考えられる答えは明白であるように思われました:
ghci -XNoImplicitPrelude
、またはでファイルをロードしますimport Prelude ()
後者は機能しているようですが、前者は奇妙なことに機能しません。ただし、import Prelude ()
宣言されたインスタンスをプレリュードからインポートしますよね?Preludeをまったくロードせずにghciセッションを作成するより良い方法はありますか?
macos - GHCi のファイルから関数をロード中にエラーが発生しました
Haskell はまったくの初心者です。基本を理解するために、私は「Haskell を学んで大成功を収める」に取り組み始めました。ファイルから関数をロードするという単純な問題に固執しています。
ファイルが呼び出さbaby.hs
れ、関数が含まれています
何もありません。で保存しました/Users/me
。
GHCi に入力:load baby
すると、次のエラーが表示されます。
ターゲット `baby' は、モジュール名またはソース ファイルではありません。
私は Mac で作業しており、baby.hs
TextEdit セットを使用してファイルを作成し、プレーン テキスト/UTF-8 ファイルを生成しました。私のホームディレクトリは/Users/me
、GHCiからこれを確認する方法がわかりませんが、GHCiを実行する前にbashから確認したときのものだと思います。
私が間違っていることは何か分かりますか?
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
それが何を望んでいるかを正確に伝えるにはどうすればよいですか?
haskell - HUnit を ghci にインポートできません
HUnit をインストールしたばかりで、それを ghci にインポートしたいと考えています。
また、私-v
を助けるために を使用する方法がわかりません。
どうすればインポートできますか?
haskell - FreeGlut が ghci で機能しない
「Glut」を使って小さなプログラムを書きました
GHC によってコンパイルされたプログラムは正常に実行されます (ghc --make t.hs) が、ghci からプログラムを実行しようとすると、ghci が次のメッセージでクラッシュします。
ghci から Glut プログラムを実行することは可能ですか?