問題タブ [lazy-evaluation]

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

php - Pythonのyield演算子に相当するPHP

Python(およびその他)では、関数で「yield」演算子を使用して、大量のデータを段階的に処理できます。PHPでこれを行うための同様の方法は何でしょうか?

たとえば、Pythonで、潜在的に非常に大きなファイルを読み取りたい場合は、各行を一度に1つずつ処理できます(この例は、file_objの行の'と基本的に同じであるため、考案されています。 '):

私が今(PHPで)行っているのは、プライベートインスタンス変数を使用して状態を追跡し、関数が呼び出されるたびにそれに応じて動作することですが、もっと良い方法があるはずです。

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

c# - 機能リスト操作では、「各アイテムの間に何かを挿入する」とは何ですか?

時々、最後のアイテムを除いて、各アイテムの後に新しいアイテムを挿入してリストを処理する必要があることに気付きます。文字列のリストの各項目の間にコンマを入れる方法と似ています。

毎回最後(または最初)のアイテムの特殊なケースをコーディングすることにうんざりしていたので、Linqスタイルの拡張機能でパターンをキャプチャしました。

たとえば、これにより、フロードキュメントをプログラムで簡単にハイパーリンクで埋めることができますが、各ハイパーリンクの間に改行が入ります。

これがSystem.Linq.Enumerable(このようなものを書いた直後に私が通常発見するもの)にまだ存在しないと仮定すると、問題は、Separate他の機能フレームワークまたは言語で通常呼び出されるリストでのこの操作は何ですか?

0 投票する
4 に答える
14925 参照

nhibernate - 怠惰なエンティティに実インスタンスをロードさせる

子エンティティをロードすることによってセッションで作成されたレイジーエンティティのプロキシがあります。親エンティティでの後続のフェッチは、NHプロキシのみを返します。タイプを確認するために実際のインスタンスが必要です(エンティティはサブクラスに参加しています)。私は何かが欠けているに違いありませんが、これを行う方法を見つけることができません。Session.Refresh(proxy)は役に立たないようで、私が試したHQLのフレーバーも役に立ちません。

誰か助けてもらえますか?

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

clojure - clojure の再帰的 (doall)

ファイルから読み取るネストされた遅延シーケンスを持つ構造がいくつかあります。私がテストしているとき、ファイルが閉じられる前にすべてのデータがファイルから引き出されることを確認するために、doall の再帰バージョンでそれらをラップできるようにしたいと考えています。

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

python - hasattr() で評価されない Python 遅延属性

でアクセスしようとしたときに評価されない属性を遅延させるデコレータを作成することは可能hasattr()ですか? 私はそれを怠惰にする方法を考え出しましたが、hasattr()時期尚早に評価します。例えば、

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

haskell - Haskell で「スタック スペース オーバーフロー」を解決する方法

次のプログラムを実行すると、「スペース オーバーフロー: 現在のサイズ 8388608 バイト」が出力されます。thisthisを読みましたが、問題の解決方法がわかりません。私はfoldrを使用していますが、「末尾再帰」であることが保証されるべきではありませんか?

強力な再帰を使用するときに「スペースオーバーフロー」を防ぐ必要があることを知るまでは、Haskell に満足しています。:)

isPrime編集:簡単にするためにの定義を削除します

0 投票する
4 に答える
3606 参照

haskell - (エミュレートされた) Haskell のマクロ?

Reddit のユーザーが次のコードを教えてくれました。

ここで何が起こっているかというと、リバースやテールまたはヘッドの取得など、処理できる一連の操作があります。

素晴らしい。

私がやりたいことは、個々の要素に入り込み、それらを永久に変更することです. たとえば、次のようなことができるようになりたいです。

[print, 1] のようなものを取得し、最後の要素をたとえば 3.14 に変更して、関数が 3.14 を出力するようにします。

Haskellでそれはまったく可能ですか、それともLISPに戻るべきですか?

重要な編集:私はちょっと大失敗しました。新しいリストを作成する必要があることを理解しています。リストの一部である関数の引数を取得することは可能ですか? 私が欲しいのは、関数をその識別子/引数から構成し、評価される前に関数を識別子/引数に分解できることです。

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

debugging - 怠惰な関数型プログラミング言語でのデバッグはどのように行われますか?

遅延関数型言語でデバッグがどのように行われるか知りたいです。
ブレークポイント、print ステートメント、および従来の手法を使用できますか? これも良い考えですか?
モナドを除いて、純粋な関数型プログラミングでは副作用が許されないというのが私の理解です。
実行順序も保証されません。
テストしたいコードのセクションごとにモナドをプログラムする必要がありますか? この分野でより経験豊富な人から、この質問への洞察が欲しいです。