問題タブ [function-composition]
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.
playframework-2.0 - Play Framework 2.0 でアクション合成中にラップされたアクション呼び出しを変更する方法
アクション構成について私が理解していることから、アクション クラスの周りに複数のアクション クラスをラップして、ラップされたクラスがアクション アクション クラスの前に最初に呼び出されるようにすることができます。
たとえば、次のようになります。
index への呼び出しは、最初に a & b の call() メソッドを通過します。ここで重要なことは、ある時点で、コントロールを index() メソッドに委譲する必要があるということです。
私の質問は; aまたはbのいずれかで、呼び出しをindexからlogoutに変更することは可能ですか?
delegate.call の代わりに controller.Application.logout() を呼び出してみましたが、ログアウト メソッドはコンテキストのハンドルを取得しません。何か案は?
haskell - negate を使用した関数合成について
すばらしいサイトから高次関数のページを読んだ後でも、関数合成と組み合わせた否定関数を理解するのに苦労しています。
より具体的には、次のコードを使用します。
これにより、次の結果が得られます。
もう一度ページを読み直しましたが、正直なところ、そのコード行がどのようにしてこの回答を生成したのか、まだわかりません。
scala - scala での関数構成の順序に関するコンパイル時の制約
自然言語テキストを処理する関数をいくつか定義したいと思います。これらの関数はそれぞれ、テキストにいくつかの「注釈」を追加します。
したがって、Token アノテーションを追加する Tokenizer 関数、Sentence アノテーションを追加する SentenceSegmenter 関数などを使用する場合があります。これらの関数には、実行できる順序にいくつかの制約があります。たとえば、Tokenizer には Sentence アノテーションが必要な場合があるため、SentenceSegmenter の後に実行する必要があります。この場合、誤ってこれらの関数を間違った順序で作成した場合にコンパイル エラーが発生するようにしたいと考えています。したがってsentenceSegmenter andThen tokenizer
、コンパイルする必要がありますが、コンパイルしtokenizer andThen sentenceSegmenter
ないでください。
以下は私の試みです。テキスト用に特別なコンテナー タイプを定義しました。このタイプ パラメーターは、テキストに追加された注釈を (複合型を介して) 指定し、関数は型パラメーターを適切に指定して、前提条件が満たされるまで実行できないようにします。複合タイプの一部です。
ここまでは順調ですね。関数の 1 つを実際に定義しようとすると、問題が発生します。たとえば、次のように定義したいと思いますtokenizer
。
しかし、Scala コンパイラーはメソッドの型引数を推測する方法を理解できず、++
手動で型パラメーターを指定しない限りtext.++[Token](...)
、次のエラーが発生します。
この型パラメーターを推論する方法はありますか? あるいは、私は問題について間違って考えていますか? Scala でこれらの種類の関数構成の制約をキャプチャするより良い方法はありますか?
scala - 部分関数で型推論を機能させるにはどうすればよいですか
部分関数を使用してメッセージを処理するクラスのクラス階層を定義したいと考えています。各クラスは、処理できないメッセージをそのスーパークラスに延期する必要があります。このようなもの:
あなたはアイデアを得る。しかし、これを試してみると、次のエラーが表示されます
{...} ブロックの型を明示的に指定すると、次のように機能します。
部分関数ブロックの型を明示的に指定せずにこれを達成する方法はありますか?
f# - F# 合成演算子について
私はF# での>>
and演算子の使用に精通しています。<<
しかし、より深い理解を得るために F# のソースを調べたところ、次のことで混乱してしまいました。
これらの表現を概念的にどのように解釈すればよいでしょうか? また、これらの表現をどのように説明しますか? 彼らはタイプを定義していますか?
api - Scala API 2.10.*: Function2.andThen はどうなった?
Joshua Suereth の «Scala in Depth» を読んでいます。この本は、著者の明確に確立された能力のために購入しました。私は 3 ページ目で、大量のタイプミスと一貫性のない書式設定の後 (わかりました、これらのエラーに寛容になりました)、非常に単純なシナリオを解決するための機能的アプローチに関する次の例に出くわしました。
明らかに青写真 (具体的なメソッドは定義されていません…) である限り、注意して例を取り上げました… «catch» は、予約語Cat
でありBird
、インスタンス化できない場合、明らかに別のタイプミスです…</p>
…しかし、例の質が悪いにもかかわらず、関数合成に関して定義された «story» val (andThen
は の «reverse-associative» です) は、それが例の核心compose
である場合、別の偶発的な間違いであるとは考えられません。
実際、この例は私のローカル バージョンの Scala (2.10.1) ではコンパイルされず、入手可能な最新バージョン (2.10.2) でもドキュメント化されていません。
その有用性と実装が簡単であることは疑いの余地がありません (以下を参照)。
API を少し精査した後、andThen
関数 1 でのみサポートされており、関数 2 から関数 22 に消えたと思われることがわかりました。質問は次のとおりです。
Function* のアリティが 1 より大きい現在サポートandThen
されているイディオムは何ですか?compose
haskell - Haskell タプル関数合成
私は、Richard Bird による Haskell を使用した FP の紹介から Haskell の学習を開始しましたが、次のことを証明するのに行き詰まっています。
ペアの定義は次のとおりです。
誰かが私を正しい方向に向けることができますか? 私はまだ始まったばかりだということを覚えておいてください。前もって感謝します!