2016-04-15 15 views
0

下のコードのように型パラメータを継承することによって、型パラメータに基づいて型クラスを作成できますか?scala:型パラメータから基本クラスを継承する

私は、これは関数型言語としてScalaの制限があるとして、これは基本的に不可能であることを疑うん...

しかし、私は以下のコードに変更しなければならないものを、可能な場合

class MyInt[T : Numeric] extends T { 

} 

答えて

1

これはできません。 クラス(特性を含む)を拡張することはできますが、タイプを拡張することはできず、Tタイプです。

可能であれば、MyInt[Int](最終)、またはMyInt[List[String]](これはクラスではありません)を持つことを意味しますか?それは非常に迅速にコンパイラのために非常に複雑になるでしょう。

+0

これは言語の制限であり、私は関数型プログラミングの一般的な制限を想定していますか? – Pavel

+1

これは言語の制限です。関数型プログラミングとは何の関係もありません。私はあなたが求めているものを正確に行うことができるプログラミング言語は知らない。 –

+0

@PavelOliynyk FPとサブタイプの共通部分は、問題が理にかなっていない、ほとんどの機能的な言語では小さくて奇妙です。 :) –

関連する問題