問題タブ [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.
validation - 理解のために`Try`sをスレッド化する
別の質問(後で編集されました)をきっかけに、for-comprehensionsを使用して、 Scala 2.10のTry
構成(このプレゼンテーションを参照)への呼び出しをチェーンするのがいかに簡単かを試してみたかったのです。
トークンのリストを作成し、それらを一連のパターンと照合してから、最初のエラーまたは正常に照合されたパターンを返すという考え方です。私は次のかなり厄介なバージョンに到達しました、そしてこれをもっと簡単でもっと良くすることができるかどうか疑問に思います:
今、の期待を構築しますKeyword("void") :: Ident(id) :: Punct("(") :: Punct(")") :: tail
完全なテストケースを作成します。
以下は、テスト方法を検証します。
今、特に追加flatMap
とmap
インyield
は恐ろしいようです、そしてhead
理解のために結果を求める必要があります。
何か案は?理解にはTry
非常に適していませんか?Either
このタイプのスレッド化を可能にするために、どちらかTry
を「修正」するべきではありませんか(たとえばTry
、の直接結果タイプとして許可するunapply
)?
scala - 理解のための Scala
私は
次のようなリスト内包表記で使用したい:
しかし、エクストラクタが戻ったために「rader」の「rad」が失敗するとNone
、MatchError
.
理解のためのエクストラクタは、ケースを処理/無視することになっていませんNone
か、それとも何かを見逃していましたか?
私はそれをできた
しかし、それはそれほどセクシーではありません;)ありがとう
scala - 理解とモナドのためのScalaでのメソッドパラメーターの検証
メソッドのパラメーターのnullを検証しようとしていますが、解決策が見つかりません...
誰かが私にやり方を教えてもらえますか?
私はこのようなことを試みています:
clojure - Clojureのシーケンス内包表記に変数はありますか?
私は Programming Clojure 2nd edition を読んでいて、49 ページでは Clojure の for ループ構造について説明していますが、これは実際にはシーケンス内包表記であると書かれています。
著者は、次のコードを提案しています。
...Java ベースの命令型の例よりも望ましいものであり、与えられた証拠は、「高階関数を使用することにより...機能的な index-of-any は、変数の必要性をすべて回避する」ことです。
変数でない場合、「idx」、「elt」とは何ですか? アキュムレータ以外の変数を意味しますか?
また、なぜ「a」ではなく #{\a} なのですか?
scala - このマップ/フラットマップをScalaで理解するために変換する方法は?
このマップ/フラットマップを理解できるように変換する方法と、それがどのように機能するかを説明してください、ありがとう。
scala - scala: 内包表記を使用してこの関数を書き直す方法
このコードには、いくつかの厄介なネストされたチェックが含まれています...
わかりやすいように書き直すことができると確信していますが、パターンマッチングのものをどのように混合するかについて少し混乱しています
あなたが私に与えることができるヒントはありますか?
scala - 収量で使用するために、Scalaの理解のために(ifで)値を定義できますか?
収量で使用するために、Scala の for 内包表記で (if で) 値を定義することは可能ですか?
これは、コストがかかる可能性のある評価を 2 回回避するために行いたいと考えています。
説明する例。
scala - Scala: for-comprehension の .take(1)?
ここで .take(1) できますか? (フラットマップ、フィルターなどに変換しようとしましたが、失敗したので、とにかく読みにくいと思います...)
scala - Scalaで理解力を短くする(それから抜け出す)方法は?
次のようにコーディングするコードがあります。
条件がいくつかの要素で真になり、残りのすべての要素で偽になる場合。
elements
残念ながら、私は無限のイテレータであるため、これは機能しません(パフォーマンスを無視しても) 。
理解のために「ブレーク」を使用して、特定の条件が成立したときに要素の生成を停止する方法はありますか?そうでなければ、私の計算の慣用的な方法は何でしょうe2
か?
scala - Scala for-フィルタリングしすぎると理解できますか?
私は次のプログラムを持っています:(Scala 2.9.2、Java6)
これにより、次の出力が生成されます。とが両方ともList((-1,-1), (-1,1), (1,-1), (1,1))
0
である値のみを除外することを期待していましたが、またはが0であるすべての値ではありません。a
b
a
b
if-clauseを次のように変更することで、必要な動作を得ることができます。–if (a,b) != (0,0)
しかし、本当にそうする必要がありますか?これはバグですか、それとも意図的な動作ですか?私は、これに驚いた。