問題タブ [lazy-sequences]
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.
clojure - 実現された LazySeq の要素を見つける
実現時に作成される接続の LazySeq があります。接続を作成しようとして例外が発生した場合は、LazySeq で既に実現されているすべての接続を反復処理して閉じたいと思います。何かのようなもの:
close-connections
ただし、接続を再度認識しようとするため、これはうまく機能しません。追加の接続を実現するのではなく、実現された接続のみを閉じたい。これを行うためのアイデアはありますか?
clojure - Clojure は LazySeq を変更します
次のことを行う Java コードをいくつか継承しました。
1) Clojure から LazySeq オブジェクト (多数の PersistentHashMap オブジェクトで構成される) を受け取る
2) 次に、この同じ LazySeq オブジェクト (変更なし) を Clojure スクリプトに戻し、そこで String に変換して Java に戻します。
問題は、手順 (1) の後と手順 (2) の前に Java コード内で、LazySeq 内の PersistentHashMap オブジェクトの一部を変更してから、手順 (2) に進む必要があることです。何かのようなもの:
LazySeq seq = clojureFunctionReturningLazySeq();
//update the elements of the sequence
String result = clojureFunctionReceivingLazySeq(seq);
Clojure スクリプト自体を変更することはできず、LazySeq の更新は Java コード内で行う必要があります。LazySeq API を確認しましたが、要素を変更 (または追加) する方法が見つかりません。
ありがとうございました、
クリス
clojure - line-seq の動作はどうなりますか?
doseq
最初の要素の一部を反復して保持する場合の遅延シーケンスの動作を理解したいと思います。
リストを保持したくありません。各要素で副作用を実行したいだけです。なくてfirst-item
も問題ないと思います。
プログラムでメモリの問題が発生しています。おそらく、シーケンスの開始時に何かへの参照を保持しているparsed-line
ということは、シーケンス全体が保存されていることを意味していると思います。
ここで定義されている動作は何ですか? シーケンスが保存されている場合、オブジェクトのコピーを取得し、シーケンスの実現された部分をガベージ コレクションできるようにする一般的な方法はありますか?
clojure - clojure 遅延関数 - Clojure Koan
「反復は無限の遅延シーケンスを提供します」
私の質問は、なぜ 1 ではなく 0 から始まるのですか? ここで怠惰を理解する方法は?
clojure - 関数の遅延シーケンスの実行
関数の遅延シーケンスを強制的に評価する方法を知りたいです。
たとえば、整数 1 を返す関数があるとします。
そして、これらの関数の遅延シーケンスを構築します。
シーケンス内の関数を実際に実行するにはどうすればよいですか?
私はDoall を提案した How to convert lazy sequence to non-lazy in Clojureを読みました...しかし、結果がどこに行くのかわかりませんか? [1 1 1 1 1] または同様のものを期待しています。
f# - 無限フィボナッチ数列
シーケンスを使用して F# で Haskell の有名な無限フィボナッチ リストを模倣しようとしています。次のシーケンスが期待どおりに評価されないのはなぜですか? どのように評価されていますか?