問題タブ [io-monad]

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

haskell - Haskell IO Int と Int

最近Haskellを勉強し始めました。配列のランダムな要素を選択するプログラムを作成しようとしています:

次のエラーが表示されます。

私が間違っていることは何ですか?初めてモナドを扱うのは難しい

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

haskell - 私の(レール)コンパイラにASTファイルを書き込む可能性を追加する

私は Haskell で rail-compiler (rail は難解な言語です) を書いています。

1) 別のコンパイラが AST (Abstract Synatx Tree) を処理できるように、コンパイル パイプラインを実行するか、レクサーの後で停止して AST をファイルに書き込むかをプログラムに尋ねさせます。これが私のプログラムです:

が原因で 21 行目 ( input <- readFile inputfile) でエラーが発生し<-ます。なんで?

どうすればいいですか?

2)次のことは、プログラムをそのようにリファクタリングしたいということです。端末からパラメーターを使用して呼び出すことができますrunhaskell Main(AST)(そのようにしてASTを作成する必要があります)またはrunhaskell Main.hs(そのようにしてパイプライン全体を実行する必要があります) )。

あなたの助けを願っています!

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

monads - Scalaz と Spray で複数の IO ポイントを処理する方法

REST 呼び出しは、spray.io を使用します。データ ストアを照会する途中の関数を含むさまざまな関数を使用して、その呼び出しの要求を検証します。すべて問題がなければ、そのデータ ストアに書き込みます。この状況では、最大 4 つの IO アクション (HTTP 要求、データ読み取り、データ書き込み、および HTTP 応答) があります。IO モナドを使用することにした場合、非 IO 関数が散在する必要がある場合と必要でない場合がある場合 (つまり、一部の検証が失敗した場合に読み取りと書き込みを行う必要がない場合があります)、IO を実行するように構造化するにはどうすればよいでしょうか? おそらく、まず第一に、最初にスプレーのものを無視し、スプレーがそれを行った後に評価を開始すると考えることができます. しかし、IO 関数を非 IO 関数で構成するにはどうすればよいでしょうか? 非 io のものを io モナドに持ち上げる必要がありますか?

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

haskell - 入力ファイルから状態を持つコンジットにストリーミングする方法

コンジットを使用してファイルから読み取り、それをトークナイザーにストリーミングしたいと考えています。原因は、同じ一連の文字でも、以前の入力に応じて異なるトークンが生成される可能性があることです。

では、どうすればたくさんのものをState単一の中間で処理できますか?ConduitIO

書き込むだけConduit Char (State TokenizerStateType) Tokenで、間違ったタイプのエラーがいくつか発生します (IO が必要で、State がエラーのタイプを取得しました)。

私は自分のコンピューターにいないので、動作しない最小限の例を提供することはできませんが、ghc が利用可能になり次第、追加します。

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

haskell - 厳密な評価を使用して、Haskell をだまして IO 操作を実行させることができないのはなぜですか?

私は Haskell と IO モナドを学んでいます。これにより、プログラムが「こんにちは」と「さようなら」を出力するように強制されないのはなぜだろうかと思います。

私が理解している限り、$!オペレーターは の最初の引数を強制的secondに評価し、その値から値を取得して に渡すために>>=オペレーターを実行する必要があります。これにより、「hi」が画面に出力されます。print "hi"\r -> return ()

私の推論の何が問題になっていますか?

また、Haskell が「安全な」コード内で IO 操作を実行するように (安全でない関数を使用する以外に) だまされないことを証明する方法はありますか?

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

haskell - この Haskell IO 関数のよりクリーンなバージョンを作成する方法はありますか?

データベースを正しくセットアップするために実行する必要がある、この多数の IConnection conn => conn -> IO () 関数があります。今、それはそれほど美しくはありませんが、私はHaskellの初心者であり、より良くすることはできません.

とにかく短くする?と遊んでいました

しかし、私はそれを機能させることができません。提案?