問題タブ [partialfunction]
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 - 関数本体から現在の部分関数をキャンセルすることはできますか?
さまざまなパターン (unfinagled) を持つさまざまな URL を処理するために、いくつかの部分関数を定義する必要があります。
最後に、いくつかの部分的な関数を組み合わせて完全なルートにしたことがわかります。最後の 1 つはNotFound
、一致しない URL を処理しているため、以前のルート (たとえば ) で一致しないケースを気にしたくありませんassertRoutes
。
しかし、この方法では、アセットのファイル システムに一度だけアクセスしたいのでassetsRoutes
、パーツにアセットが存在するかどうかを簡単に確認できません。case
だから私は書きたくない:
次のようなカスタムを書くことはできますがunapply
:
case AssetExistWithContent(content)
ただ、URLやリクエストのマッチングの部分がわかりにくいと思います。
関数本体で現在の部分関数をキャンセルすることは可能ですか?だから私は書くことができます:
このメソッド (NotFound など) でいつ実行するかを気にする必要はありません。呼び出し元に処理できないことを伝えるだけで、次のメソッドを試してください。
regex - Scala 正規表現と部分関数
Scalaのcollect関数を正規表現で使いたいです。理想的には、正規表現に一致する用語のみを収集したいと考えています。私はこれまでのところ、正常に動作する以下を実装しました
ただし、これには追加のステップがあるようです。最初に、collect の case ステートメントで正規表現が一致するかどうかを確認し、次に一致するグループを抽出するために再度一致するかどうかを確認します。正規表現の一致を一度だけチェックするだけでこれを行う方法はありますか?
scala - 部分関数への新しい引数の追加
結果の関数が以前と同じドメインで定義されるように、部分関数に新しい引数を追加する簡単な方法はありますか (新しい引数はその部分性に影響しません)。次のコードは機能しますが、少し冗長に見えます。
scala - Scala: PartialFunction reify を使用して scala マクロを呼び出すと、「パラメーターの型がありません」
コンパイラが「Missing parameter type」をスローしています。問題を解決した後、部分関数をチェーンするときに型を明示する必要があることに気付きました。そうしないと、コンパイラーが上記のエラーをスローします。さて、マクロの具体化内で部分関数をチェーンするときに問題があるかどうか知っていますか? 部分関数の型についてこれ以上明確にすることはできなかったと思います。
これは、マクロの実装を呼び出す方法です。
私もこれを試しました:
それとも、reify の仕組みを根本的に誤解していますか?
scala - Scala: leftfold から部分的に適用された関数を取得することは可能ですか?
私は現在 Scala を学んでいます。左折はカリー化されているため、以下のように最初のパラメーターで部分的に適用された関数 (PAF) を取得できるはずです。
しかし、実際には、エラーがあります。
次に、以下のような右折で同じことを試しました
このようにうまくいき、 ((Int, Int) => Int) => IntのようなPAFを得ることができました
foldLeft メソッドで PAF を取得できることはわかっていますが、「/:」で表現できるかどうかは疑問です。