問題タブ [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.
php - Pythonのyield演算子に相当するPHP
Python(およびその他)では、関数で「yield」演算子を使用して、大量のデータを段階的に処理できます。PHPでこれを行うための同様の方法は何でしょうか?
たとえば、Pythonで、潜在的に非常に大きなファイルを読み取りたい場合は、各行を一度に1つずつ処理できます(この例は、file_objの行の'と基本的に同じであるため、考案されています。 '):
私が今(PHPで)行っているのは、プライベートインスタンス変数を使用して状態を追跡し、関数が呼び出されるたびにそれに応じて動作することですが、もっと良い方法があるはずです。
c# - 機能リスト操作では、「各アイテムの間に何かを挿入する」とは何ですか?
時々、最後のアイテムを除いて、各アイテムの後に新しいアイテムを挿入してリストを処理する必要があることに気付きます。文字列のリストの各項目の間にコンマを入れる方法と似ています。
毎回最後(または最初)のアイテムの特殊なケースをコーディングすることにうんざりしていたので、Linqスタイルの拡張機能でパターンをキャプチャしました。
たとえば、これにより、フロードキュメントをプログラムで簡単にハイパーリンクで埋めることができますが、各ハイパーリンクの間に改行が入ります。
これがSystem.Linq.Enumerable(このようなものを書いた直後に私が通常発見するもの)にまだ存在しないと仮定すると、問題は、Separate
他の機能フレームワークまたは言語で通常呼び出されるリストでのこの操作は何ですか?
nhibernate - 怠惰なエンティティに実インスタンスをロードさせる
子エンティティをロードすることによってセッションで作成されたレイジーエンティティのプロキシがあります。親エンティティでの後続のフェッチは、NHプロキシのみを返します。タイプを確認するために実際のインスタンスが必要です(エンティティはサブクラスに参加しています)。私は何かが欠けているに違いありませんが、これを行う方法を見つけることができません。Session.Refresh(proxy)は役に立たないようで、私が試したHQLのフレーバーも役に立ちません。
誰か助けてもらえますか?
clojure - clojure の再帰的 (doall)
ファイルから読み取るネストされた遅延シーケンスを持つ構造がいくつかあります。私がテストしているとき、ファイルが閉じられる前にすべてのデータがファイルから引き出されることを確認するために、doall の再帰バージョンでそれらをラップできるようにしたいと考えています。
python - hasattr() で評価されない Python 遅延属性
でアクセスしようとしたときに評価されない属性を遅延させるデコレータを作成することは可能hasattr()
ですか? 私はそれを怠惰にする方法を考え出しましたが、hasattr()
時期尚早に評価します。例えば、
haskell - (エミュレートされた) Haskell のマクロ?
Reddit のユーザーが次のコードを教えてくれました。
ここで何が起こっているかというと、リバースやテールまたはヘッドの取得など、処理できる一連の操作があります。
素晴らしい。
私がやりたいことは、個々の要素に入り込み、それらを永久に変更することです. たとえば、次のようなことができるようになりたいです。
[print, 1] のようなものを取得し、最後の要素をたとえば 3.14 に変更して、関数が 3.14 を出力するようにします。
Haskellでそれはまったく可能ですか、それともLISPに戻るべきですか?
重要な編集:私はちょっと大失敗しました。新しいリストを作成する必要があることを理解しています。リストの一部である関数の引数を取得することは可能ですか? 私が欲しいのは、関数をその識別子/引数から構成し、評価される前に関数を識別子/引数に分解できることです。
debugging - 怠惰な関数型プログラミング言語でのデバッグはどのように行われますか?
遅延関数型言語でデバッグがどのように行われるか知りたいです。
ブレークポイント、print ステートメント、および従来の手法を使用できますか? これも良い考えですか?
モナドを除いて、純粋な関数型プログラミングでは副作用が許されないというのが私の理解です。
実行順序も保証されません。
テストしたいコードのセクションごとにモナドをプログラムする必要がありますか? この分野でより経験豊富な人から、この質問への洞察が欲しいです。