問題タブ [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.

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

python - Pythonでレイジーシーケンスを構築する方法はありますか?

Member特定のフィルターを使用してデータベースからオブジェクトをロードするDjangoビューがあります。

次に、このロジックを変更して特定Memberの最初のロジックを提示し、残りを自然な順序で実行する必要があります。

最も簡単な方法は、クエリをすぐに実行し、リストを取得し、最初にアイテムを削除して挿入することです。しかし、の怠惰な性質を利用する方法がまだあるかどうか、QuerySet私は最も興味があります。

C#では、次のように記述します。

ループが通過するmembersとき、最初に取得してから、元の遅延読み込みロジックがspecificMember使用したものを使用します。db.Members

DjangoとPythonで同じことをする方法はありますか?

0 投票する
5 に答える
423 参照

clojure - Clojureの残りと次の関連

私はThe Joy of Clojureをフォローしていましたが、これらの 2 つのステートメントに困惑しています。

したがって、出力は

本はそれを説明し続けた

rest で構築された遅延 seq の最初の要素を取得すると、期待どおりに実現されます。しかし、next で構築された seq については、以前に実現されているため、同じことは起こりません。next を使用すると、レイジー seq が 1 つ少ない要素のレイジーになります。これは、実現のコストが高い場合は望ましくない可能性があります。

私の切実な質問は、なぜ「非常に怠け者」に余分なドットがあるのですか? 私の考えでは、「print」は、nextまたはの場合に関係なく、呼び出されたときにその引数を出力しますrest

ありがとう

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

clojure - Clojure 関数 (nth [coll index]) とコンポジション (last (take index coll)) の違いは何ですか?

私は Stuart Halloway の本 Programming Clojure に取り組もうとしています。この機能的なもの全体は、私にとって非常に新しいものです。

方法がわかりました

フィボナッチ数列を遅延生成します。私はなぜなのか理解していない

働きながら

OutOfMemoryError をスローします。この2つの表現の違いを誰か説明してくれませんか? (nth) はどういうわけかシーケンスの先頭を保持していますか?

ありがとう!

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

clojure - clojureの保存と式でのシーケンスの使用

Helo、clojureを学ぶために、シーケンスに作用するclojure.core関数に興味を持った。最近、奇妙な振る舞いに気づき、次の表現の違いについて説明したいと思います。

私がやろうとしていることはこれです:

ただし、getを使用して保存(iterate inc 1)するとdef、次のエラーが発生します。

誰かがiterate inc 1それを式に直接保存することと使用することの違いを説明してもらえますか?私はそれaが怠惰なシーケンスであることを知っていますが、何かが欠けています...

お時間をいただき、誠にありがとうございます。

0 投票する
6 に答える
3216 参照

list - Prolog の遅延リスト?

Prolog で遅延リストを使用することは可能ですか? 次のようなもの:

これは明らかに書かれているようには機能しませんが。

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

ruby - インデックスを使って何かを無限に行う

プロジェクト euler #2 を実行するより Ruby の方法では、コードの一部は次のとおりです。

i += 1より機能的なプログラミング スタイルの構造に変更する方法はありますか?

私が考えることができる最高のものは

.times浮動小数点数を呼び出すことができないためです。

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

clojure - clojureでデータの一部が遅延しているかどうかを確認する

データに遅延部分が含まれているかどうかをチェックする関数が clojure にありますか?

バックグラウンド:

私はclojureで小さなサーバーを構築しています。各接続には、状態、入力ストリーム、および出力ストリームがあります

サーバーは入力ストリームから 1 バイトを読み取り、その値に基づいていくつかの関数の 1 つを呼び出します (状態と入力および出力ストリームをパラメータとして)。関数は、入力ストリームからさらに読み取り、出力ストリームに応答を書き込み、状態を返すことを決定できます。この部分がループします。

状態に遅延部分が含まれていない限り、これはすべて正常に機能します。状態に遅延部分がある場合、(後で別の関数の実行中に) 評価されるときに、入力ストリームからの読み取りと出力ストリームへの書き込みが開始される可能性があります。

したがって、基本的には、これらすべての関数に事後条件を追加して、返される状態のどの部分も遅延していないことを示したいと考えています。遅延シーケンスをチェックする関数はありますか。状態自体が遅延シーケンスであるかどうかを確認するのは簡単だと思いますが、たとえば、値の1つが遅延しているハッシュマップを含むベクトルが状態にあるかどうかを確認したいと思います。

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

performance - 遅延シーケンスによる突然のスローダウン

私はこのコードを持っていました:

これは、プログラムの反復ごとに、最近の履歴のローリング ウィンドウをマップに追加するためのものでした。私が見つけたのは、特定の回数 (~ 50) の反復の後、私のプログラムは劇的にそして次第に遅くなるということでした。

一方、コードを次のように変更した場合:

その後、プログラムは反復ごとにわずかに長く実行されましたが (レイジー seq が実現されたため)、一貫して実行され、速度が低下することはありませんでした。

Clojureを初めて使用するのでわかりません...チャンクされたシーケンスと関係がありますか?

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

clojure - Clojure で遅延 seq を作成する非線形スローダウン

与えられた入力コレクションの n グラムを遅延シーケンスとして返す関数を実装しました。

より大きな入力コレクションでこの関数を呼び出すと、実行時間が直線的に増加することが予想されます。ただし、私が観察するタイミングはそれよりも悪いです。

corpusCons文字列トークンの です。

この動作の原因と、パフォーマンスを改善するにはどうすればよいですか?