問題タブ [haskeline]

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 投票する
1 に答える
221 参照

haskell - ghci サポート ^p を作成するにはどうすればよいですか?

ターミナルに移動するには、上矢印の代わりに Ctrl pa をたくさん使用します。ghci で Ctrl p をサポートして上に移動するにはどうすればよいですか?

ポートからghc98のghciを使用します。Mac OS X 10.5.8。

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

haskell - Haskellのベストプラクティス:Haskelineでの早期終了

私はHaskelineパッケージを使用していて、何かをする前にコマンドラインから3つの文字列を続けて取得したいと思っています。そして、私にとってはきちんとした解決策と思われるものを思いつきました。しかし、私はそれを行うためのより良い方法があるかもしれないと確信しています。Haskelineパッケージを使用しているときのベストプラクティスを探しています。次のサンプルコードのメリットを評価してください。

ご覧のとおり、早期終了のタスクを実行しますが、それでも少し厄介に見えます。notNothingとgetInputLineを次のような1行に変換しようと考えています。

それほど悪くはないと思います。それはかなり明確で簡潔だと思います(ただし、タイプチェックは行わないため、タイプチェックを行うバージョンを作成する必要があります)。

しかし、これは私が思いついた最高のものであり、私の質問は最終的に次のとおりです。このコードをよりきれいで読みやすくするためにどのように改善しますか?私も正しい方向に進んでいますか?

編集:あなたのガードが'a / = Nothing'以外のものである場合、私が今発見した素晴らしいヘルパー関数は次のとおりです。

それからあなたは書くことができるので(luquiが提案したように):

これはかなりクールです。しかし、Nothingとのみ一致している場合は、TomMDの答えの方が優れています。

0 投票する
0 に答える
251 参照

console - カレーの「readline」(または「haskeline」)?

適切なライン編集を備えたコンソールUIを備えたCurryプログラミング言語でプログラムを作成する最も実用的な方法は何ですか?

実際、ユーザーの入力の提案として文字列を渡し、ユーザーにコンソールで編集させ、編集したバリアントを受け取って処理し(プロセスの現在の状態に戻す)、ループする必要があります。

私はreadlineのような/haskelineのような編集が好きです。(そして、最新バージョン(0.6.4.0)のBTW haskelineには、まさに私が望むAPIがあります。提案された初期値を持つ行を読んでください- getInputLineWithInitial

getInputLineこの関数は、入力領域に事前入力することを除いて、とまったく同じように動作します。入力領域にあるテキストは、2つの文字列を持つ2タプルとして指定されます。タプルの左側の文字列はカーソルの左側に表示される文字列であり、右側の文字列はカーソルの右側に表示される文字列です。

)。

最も実用的な方法でCurryプログラムに必要な機能を取得する方法(つまり、コンソール編集操作のためにCurryで新しいコードを記述したくないのですが、ライブラリ、ラッパー、またはFFIを使用する可能性があります) ?

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

haskell - Haskell (ハスケリン) 単語補完

Haskeline を使用すると、ファイル名のタブ補完機能を非常に簡単に取得できます。

また、completeFilename を使用して上記の機能を実現するのと同じ方法で使用できるように、completeWord や completeQuotedWord などの関数も提供します。
(つまり、フォルダーの内容に基づくのではなく、単語のリスト (関数名など) に基づいてタブ補完を行います)

誰かがこれの実用的な例 - または実用的なコード - を提供できますか?

他のパッケージ (HCL など) の関数に関する推奨事項も役立ちます。

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

haskell - 構築フェーズ中にcabal-install-0.10.2が失敗しました

haskelineをインストールしようとしていましたが、cabalを使用してインストールするのは初めてで、これが私が得たものです。私は何をすべきか?

私の仕様(もっと必要な場合は教えてください):

Mac OSX10.5.8の場合

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

haskell - haskeline 内からネットワーク IO を呼び出す

コマンドライン引数 (ユーザー名、パスワード、日付) を受け取り、Network.HTTP.Conduitライブラリを使用して xml メッセージをサーバーに送信する既存のプログラムがあります。次に、結果を解析し、いくつかの作業を行い、blaze-html を使用してファイルに書き出します。

それはすべて魔法のように機能します。haskelineただし、パスワードが表示されないように使用すると思いました。ユーザーが指定した値を取得して出力するコマンド ライン プログラムを作成することはできますが、conduit を使用する関数を呼び出しても戻りません。

問題のあるコードは次のとおりです。

関数 getWMClients 関数は次のとおりです。

プログラムを実行すると、「querying WM...」でハングします。http-conduit が実際に実行されているとは思えません。これを機能させる方法に関するヒントはありますか?

前もってありがとう、ニール

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

haskell - haskelineで出力されたテキストを更新する

Haskelineは、に出力する関数outputStrとを提供しますが、すでに出力されているテキストを更新する方法はありますか?たとえば、インストーラーが現在インストールされているパーセンテージを表示するとき、つまりパーセンテージ番号が更新されることを考えています。outputStrLnstdout

cursesバインディングを使用する必要がありますか?

0 投票する
0 に答える
105 参照

multithreading - 別のスレッドからの Haskeline

私は OpenGL ゲームを作成しており、Quake のようなコンソール (チルダ (~) を押すとコンソール インターフェイスがドロップダウンする Quake 2/Counter-Strike のようなもの) のコードを書き始めようとしています。プレーン テキスト ベースのコンソール アプリケーションに既に Haskeline ライブラリを使用しており、これを OpenGL アプリに組み込みたいと考えていますが、これについてどうすればよいかわかりません。

たとえばgetInputLine、Haskeline REPL ループが別のスレッドにある場合、関数をどのように使用しますか? forkIOこれを実現するには、ファイル記述子を使用してからUNIXスタイルのパイプをシミュレートする必要があると思い ます。GLFW でキーボード入力を受け取るブリッジ関数を作成し、それを Haskeline に渡し、Haskeline に STDOUT であると思われるものに対して魔法をかけてもらい、これをキャプチャして、OpenGL 経由で画面に表示する必要があります。呼び出します。私は正しい道を進んでいますか、それともこのアプローチは最も賢明な方法ではありませんか?

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

haskell - unsafePerformIO に頼ることなく、InputT モナド内の Haskeline で単純な IO を実行する

以下の概念実証コードを考えると、文字列を出力する機能と、モナドトランスフォーマー内でその戻り値を取得する可能性をfoo備えた機能を何らかの形で実行できるようにしたいと考えています。Paul!InputTunsafePerformIOrunExceptT

ここで明らかな何かが欠けていますか?