問題タブ [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 投票する
10 に答える
24034 参照

java - 遅延評価を使用した String.format

String.format(...)メソッドに似たものが必要ですが、遅延評価が必要です。

この lazyFormat メソッドは、 toString() メソッドがフォーマット パターンを評価するオブジェクトを返す必要があります。

誰かがすでにこれを行っているのではないかと思います。これはどの図書館でも利用できますか?

これを置き換えたい(ロガーはlog4jインスタンスです):

これとともに:

デバッグロギングが有効になっている場合にのみ、文字列をフォーマットするために lazyFormat が必要です。

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

django - JSONで純粋なDjangoフォームエラーを返す

通常のDjangoビューで検証しているDjangoフォームがあります。(HTMLフォーマットなしで)純粋なエラーを抽出する方法を理解しようとしています。以下は私が現在使用しているコードです。

これにより、Djangoから悪名高いプロキシオブジェクトエラーが発生します。各エラーをUnicodeに強制しても、トリックは実行されません。これは、各エラーの__unicode__メソッドが効果的にHTML化されて呼び出されるためです。

何か案は?

編集:

興味のある人のために、これはの定義ですjson_response

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

list - Eager Language で Lazy List を作成するにはどうすればよいですか?

私はSchemeで怠惰なリストを作りたかった。これは私がこれまでに持っているものです。

lazy-list の問題は、Scheme が最初に内部式 (lazy-list (+ from 1)) を評価し、手続きが無限再帰に陥ることです。

コンストリームが評価なしでこの内部表現を取るようにする方法はありますか?

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

haskell - Haskell宣言で感嘆符はどういう意味ですか?

実際のプロジェクトを使ってHaskellを学ぼうとすると、次の定義に出くわしました。それぞれの議論の前にある感嘆符が何を意味するのか理解できず、私の本はそれについて言及していないようでした。

0 投票する
11 に答える
3132 参照

compiler-construction - 厳密な評価を使用する Haskell コンパイラまたはプリプロセッサはありますか?

デフォルトで遅延評価ではなく厳密評価を使用する Haskell コンパイラを探しています。私は OCaml を使用するだけですが、Haskell の構文はOCaml よりもはるかに優れています(Haskell は純粋で、型クラスなどの優れた機能を備えています)。

プログラム全体に常に!s とsを入れたくないのです。$!厳密さの注釈を入れるためのスイッチまたはプリプロセッサを備えたコンパイラは本当に素晴らしいでしょう。また、無限リストのようなものが必要な場合に備えて、特定の場所でも遅延評価を使用する方法があれば役立ちます (おそらく決してそうしません)。

遅延評価の方が優れていると私に納得させようとしないでください。私は本当にパフォーマンスが必要です。IIRC の Simon Peyton Jones は、遅延評価は実際には必要ではなく、主に言語が不純になるのを防ぐためにあるとさえ述べています。

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

nhibernate - nhibernate の遅延読み込みオプション

nhibernateのlazy="true"との違いは何ですか?lazy="proxy"

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

functional-programming - バイナリブロックの遅延シーケンスのパディング

数値のシーケンスを取得して適切なビット数に切り刻み、チャンクの遅延シーケンスを返すClojure関数があります(最下位ビットが最初)。それはブロックサイズを埋めるために最後のブロックの上位ビットをパディングします、そして私はそれを怠惰で機能的に保ちながらパディングの量を記録するための「最良の方法(tm)」についてのアドバイスが必要ですか?

知恵の言葉は大歓迎です。

パラメーター:

  • in-block-sizeは、入力シーケンスの各数値の有効ビット数です。
  • out-block-sizeは、返されるレイジーシーケンス内の各数値の有効ビット数です。
  • バイトは、ビットを抽出するための数列の怠惰なシーケンスです

これは、3バイトのシーケンスを取り、それを2つの20ビット数のシーケンスに分割する(そしてそれを2進文字列として出力する)例です。

20ビット番号のシーケンスの2番目の番号には、4つの有効ビットのみがあり、有効な16個のゼロが追加されています。次に、このシーケンスを、シーケンスで何かを実行してネットワーク経由で送信したい別の関数に渡した場合。受信側のコードは、最後の16ビットを印刷/保存などしないようにする必要があります。

PS:これらは連鎖させることができます。(block-seq 20 15(block-seq 8 20(read-bytes-from-file)))

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

parsing - 解析:F#での遅延初期化と相互再帰モナド

私はF#で小さなモナディックパーサーコンビネーターライブラリー(FParsecにいくらか似ています)を書いていましたが、プログラミング言語用の小さなパーサーを実装しようとしました。

私は最初にHaskell(Parsecを使用)でコードを実装しましたが、これは完全にうまく機能しました。中置式のパーサーは、相互再帰的に設計されています。

関数の順序は重要ではなく、Haskellは厳密ではない方法で評価しているため、これは問題ありませんが、F#は厳密に評価しています。

F#は、再帰オブジェクトについて文句を言いStackOverflowException、無限ループのために実行時にをスローするか、「値はそれ自体の定義の一部になる」ためにソースをコンパイルしません。

このエラーを防ぐための最良の方法は何ですか。デバッガーは、lazy代わりに関数またはsを使用するようにアドバイスしますが、ここで何を怠惰にする必要がありますか?

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

sql-server - データベース構造の比較: SQL パッチの作成方法

2 つの SQL Server (2000) データベースがあります。どちらも同じプロジェクトで使用されますが、バージョンが異なります。基本的に、古いデータベースはテスト環境のものです。新しいデータベースは DEVELOPMENT 環境のものです。また、ACCEPTANCE、PRODUCTION、および MAINTENANCE 環境もあり、それらにはすべて同じプロジェクトが含まれています。(D から T へ、A から P へ、そして最後に M へとバージョンを移動する、私たちの開発通りです。)

現在、開発データベースの構造が変更されています。いくつかのテーブルが追加され、インデックスが追加または削除され、フィールドの型が変更され、null 許容フィールドが null 非許容になりました。テスト データベースは新しい構造でアップグレードする必要がありますが、データを失うことはありません。現在、私はこれを多くの手作業で行っています。構造上の変更のリストを保持し、すべての準備が整ったら、古いテスト データベースにパッチを適用するための更新スクリプトを作成します。

しかし、ソフトウェア エンジニアとして、私は設計上怠け者です。では、2 つのデータベース構造を比較し、それ自体で更新スクリプトを生成する簡単なツールはありますか?

(構造を変更するだけです。ところで、データ操作はありません!)