問題タブ [for-comprehension]
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.
scala - Scala での理解のために自動インクリメント インデックスを使用する方法
Scalaの内包表記で自動インクリメントカウンターを使用することは可能ですか?
何かのようなもの
scala - 理解のためのLiftJSONでの非再帰的抽出
私はLiftJSONのfor-comprehensionsを使用してJSONを解析しています。JSONは再帰的であるため、たとえば、フィールドid
は各レベルに存在します。次に例を示します。
次のコード
を生成しList(1, 2, 3)
ます。製品に期待していたList(1)
。
私のプログラムでは、これは2次計算になりますが、必要なのは線形だけです。
for-comprehensionsを使用してトップレベルのid
フィールドのみに一致させることは可能ですか?
scala - 入れ子になった怠惰な理解
私は深く「ネストされた」理解力を持っており、x、y、zの3つのレベルに簡略化されています。xaだけをStream
作成すると、yとzの計算も怠惰になることを望んでいました。
しかし、これは3つのプリントから明らかなように、3つの要素すべてを計算します。最初の2つだけを計算したいのは、これらがすべてストリームから取得するためです。toStream
2番目などを呼び出すことでこれを回避できList
ます。理解のあらゆるレベルでそれを呼ぶよりも良い方法はありますか?
scala - Scala for/comprehension式の脱糖部分を取得していますか?
REPL (またはコンパイラ) で実際にコンパイルしようとする前に、for/comprehension 式の (Scala 部分のみ) desugar 変換を取得する方法を知っている人はいますか?
私がこれまでに見つけた唯一のものは、コンパイラの「-print」フラグですが、これで Scala の完全な翻訳が得られます…
scala - Scala の「for」構文でのどちらかの使用
私が理解しているように、Scala の「for」構文は、Haskell のモナドの「do」構文に非常に似ています。List
Scala では、 s とsに "for" 構文がよく使用されますOption
。sで使いたいEither
のですが、必要なメソッドがデフォルトのインポートにありません。
この機能は、何らかのインポートを通じて利用できますか?
少し問題があります。
リストの場合は になりますList()
。の場合Option
、 になりますNone
。Scala 標準ライブラリはこれに対する解決策を提供しますか? (またはおそらくscalaz
?)どのように?独自の「モナド インスタンス」を提供したいとします。
scala - scala での理解度評価の遅延
私はscalaとほとんどの関数型言語に不慣れで、現在数を因数分解しようとしています。私はコードを書いた:
scala val を遅延として宣言した場合、呼び出したときに理解のために全体を評価しないのではないかと思っていましたfactors.head
か?
scala - シーケンス理解のタイプは何ですか
Scalaを学び始めたばかりです。
http://www.scala-lang.org/node/111の例で遊んでいたときに、型に問題があることがわかりました。
これは、次のエラーでコンパイルされません。
ただし、戻り値の型指定がなくても動作し、クラスは Vector です。
これは矛盾しているようです。コンパイル型エラーの原因を教えてください。
scala - パターンマッチシーケンス内包表記の慣用的な方法は何ですか?
コンストラクターを期待される型にインスタンス化できません。見つかった: collection.immutable.::[B] 必須: scala.collection.immutable.IndexedSeq[Int]
これは、 match が IndexedSeq を受け取っても LinearSeq を受け取っていない場合の MatchErrorと同じ問題です。
問題は、それを正しく行う方法です。どこにでも追加する.toList
のは正しくないようです。そして、Seq
(他の質問の回答で説明されているように)すべてを処理する独自のエクストラクターを作成すると、誰もがそれを行うと混乱につながります...
問題は、シーケンス内包表記の戻り値の型に影響を与えられないのはなぜですか、または、そのような一般化されたSeq
エクストラクタが標準ライブラリの一部ではないのはなぜですか?
clojure - 理解のためのClojureの例
docjureを使用していますが、select-columns関数の列マップが必要です。手動で指定せずに、すべての列を取得したいと思います。怠惰な無限ベクトルシーケンスとして以下を生成するにはどうすればよいですか[:A:B:C:D:E ...:AA:AB:AC ....:ZZ ...:XFD]?
macros - 「for」読解の重複を減らす
Clojure For Comprehensionの例に対する私の回答では、削除したい重複がいくつかあります。
「for」の重複を削除したいと思います。私は次のマクロを書きました:
どちらで動作しますか:
しかし、私が試してみると:
私は得る:
何が起こっている?重複を取り除くためのより良い方法はありますか?