問題タブ [iterate]
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 - Iteratees と FRP の関係は何ですか?
二つの考えの間には強いつながりがあるように私には思えます。私の推測では、Iteratees で任意のグラフを表現する方法があれば、FRP は Iteratees の観点から実装できると思います。しかし、私の知る限り、彼らはチェーンのような構造しかサポートしていません。
誰かがこれに光を当てることができますか?
scala - ファイルに書き込む Scala iteratee
save
を取り、Iteratee
it
いくつかのデータを に保存するメソッドがありますit
。メソッド内では、データはバイト配列チャンクを生成する列挙子として使用できます。
募集:save
にデータを書き込むために呼び出しFileOutputStream
ます。
次のことを試しましたが、これが正しい方法かどうかわかりません。
質問:これは本来行われるべき方法ですか? これが常にストリームを閉じるとは限らないのではないかと心配しています(例外の場合)。
Play Framework 2.1 (Scala フューチャーを使用)の Play Framework Iteratee ライブラリを使用しています。
scala - Scala Play で状態を管理する方法 2.0 ウェブソケット?
https://github.com/playframework/Play20/tree/master/samples/scala/websocket-chatの例を見ています
Websocket コントローラーを作成するには、次のように記述します。
Chatroom.join はscala.concurrent.Future[(Iteratee[JsValue,_],Enumerator[JsValue])] を返します。しかし、Play! 内で使用される iteratee と列挙子はどこにありますか? フレームワーク?WebSocketクラス (WebSocket.scala)は入力を無視しているようです:
どうやって遊ぶの!入力を消費する際に iteratee の変化する状態を管理しますか?
functional-programming - How to get an Enumerator[T] from List[T] when using Play 2 Iteratees
I am quite new to Play 2 and am trying Iteratees.
Q1. How can I get an Enumerator[Person]
from List[Person]
?
Q2. When I try to pass an Enumerator(Option[String])
to Ok.stream
I get an error on console stating that
Cannot write an instance of Option[String] to HTTP response. Try to define a Writeable[Option[String]]
Can someone point me in the right direction as to how I can define a Writeable for custom types to HTTP response?
Thanks.
scala - Scalaで利用できる十分に開発されたiteratee/パイプライブラリは何ですか?
Scalaには、Haskellのパイプ、または少なくともiterateeの精神で十分に開発されたライブラリがありますか?
Promise
Playのiterateeライブラリを最初に見つけましたが、それを機能させることができず、多くの場合不適切である可能性があるPlayの同時実行プリミティブと緊密に結合しているようです。
Scalazにはいくつかのiterateeサポート(IterVなど)がありますが、追加のサポート関数、事前定義された反復子/列挙子などがないコアクラスしかないようです。また、ドキュメントが見つかりませんでした。scaladocでさえ非常にまばらなので、作成するのは非常に困難です。正しく使用してください。
そして、私はパイプに似たものを見つけることができませんでした。
json - json/twitter 検索のより多くのレベルにアクセスするには、ヘルプが必要です
Twitter検索やストリーミングを行う@diegolparraの例を使用しています。
この例では、twitter 検索の結果からフィールド from_user_name と text を取得します。ここで、created_at date ともう 1 つのレベル (ノード ユーザー) にアクセスして、ユーザーから取得する必要があります: profile_image_url と lang.
助けてください。
ありがとう。
scala - Scalaz 7 Iteratee で大きな zip ファイルを処理する (OutOfMemoryError)
scalaz iteratee パッケージを使用して、一定のスペースで大きな zip ファイルを処理しようとしています。zip ファイル内の各ファイルに対して実行する必要がある長時間実行プロセスがあります。これらのプロセスは並行して実行できます (また、並行して実行する必要があります)。
それぞれをオブジェクトにEnumeratorT
膨らませるを作成しました。署名は次のようになります。ZipEntry
File
IterateeT
各ファイルに対して長時間実行されるプロセスを実行するを添付したいと思います。私は基本的に次のようなものになります:
実行しようとすると:
java.lang.OutOfMemoryError: Java heap space
メッセージが届きます。IO
これらすべてとPromise
オブジェクトのメモリに大量のリストを構築しようとしているので、これは私には理にかなっています。
いくつかの質問:
- これを回避する方法について誰かアイデアがありますか?
longRunningProcess
私は本当にその副作用だけを気にしているので、私は問題に間違ってアプローチしているように感じます. - ここでの
Enumerator
アプローチは間違ったアプローチですか?
私はアイデアがほとんどないので、何でも役に立ちます。
ありがとう!
更新 #1
スタック トレースは次のとおりです。
私は現在、nadavwr のアドバイスを受けて、すべてが私が思うように動作していることを確認しています。更新があればまた報告します。
アップデート #2
以下の両方の回答からのアイデアを使用して、適切な解決策を見つけました。huynhjl が示唆したように (そして、ヒープ ダンプを分析するという nadavwr の提案を使用して確認しました)、consume
すべての膨張ZipEntry
したものがメモリに保持されていたため、プロセスがメモリ不足になりました。ファイルへの参照ではなく を返すように、実行時間の長いプロセスに変更consume
して更新しました。そうすれば、最後にすべての IoExceptions のコレクションを取得できます。実用的なソリューションは次のとおりです。foldM
Promise[IOE[Unit]]
このソリューションは、各エントリを非同期にアップロードしながらインフレートします。Promise
最後に、エラーを含む実行済みオブジェクトの膨大なリストがあります。これが Iteratee の正しい使用法であるとはまだ完全には確信していませんが、システムの他の部分で使用できる再利用可能で構成可能な部分がいくつかあります (これは私たちにとって非常に一般的なパターンです)。
ご助力いただきありがとうございます!