私は形質がFoo[A, B]
であると仮定します。型パラメータの型パラメータをScalaのパラメータ化されたクラスに伝播することはできますか?
私はFoo
でパラメータ化クラスBar
を定義し、Bar
方法でFoo
型パラメータを再利用したいです。 (このスニペットがコンパイルされません)、以下に示すような何か:
trait Bar[Foo[A, B]] {
def doSmth[C](A => C): C
}
は似た何かを達成する方法はありますし、まだBar
宣言の中で1つだけの型パラメータを持っていますか?
p.s.説明されたものの正しい用語を誰かが示唆することができれば、それは素晴らしいことかもしれません。
'Foo'が特性である場合、それを型引数の中に含める目的は何ですか?ユースケースは何ですか? –
@ m-z:私は 'Bar'に基づいて計算チェーンを作ろうとしています(私は' Monad'と呼ぶことができるかどうかは分かりません)。 'Foo [A、B]'は現在の計算ステップを表し、 'Function1'のようにsmthになります。私は実際に 'Bar'部分がその型の計算コンテキストを運ぶのが好きです。 – Roman
'バー'の 'Foo'について知りたいですか?または型パラメータだけ?つまり、複数の型パラメータを持っていれば 'Bar [A、B]'または 'Foo [A、B、F [A、B]'でしょうか? –