2016-10-07 11 views
4

2つの関数を取り、それらを合成する関数を記述しようとしています。私は以下のソリューションといくつかの他の変種を試しましたが、あまり成功しませんでした。Scalaの関数の構成

def compose1[A, B, C](f: A => B, g: B => C)(x: A) = f(g(x)) 

私が手にエラーが、これはそれが信用のためではないのですが、Scalaの私たちを教えるために設計された大学の運動の一部である

<console>:21: error: type mismatch; 
found : x.type (with underlying type A) 
required: B 
     def compose1[A, B, C](f: A => B, g: B => C)(x: A) = f(g(x)) 
                  ^

完全な開示です。疑問は実際にはうまく表現されていません(文字通り機能宣言と私が上で使用した文章でした)。あらかじめ与えられた例や説明はありませんでした。私はScalaの理解を十分に理解していないと思います。助けてくれてありがとうございます。

+1

発生したエラーの詳細をさらに含めることができます。 – stefanobaghino

答えて

3

は種類をよく見て:あなたは(Bを取り、Cを返す)関数gx(タイプA)を供給するためにしようとしています。私はあなたがここからそれを拾うことができると確信しています。

+0

ああ、私は参照してください。今はちょっと愚かな気がする、ありがとう! – stmfunk

+0

学習には間違いがありますので心配しないでください。楽しむ! – stefanobaghino

+0

@stmfunkあなたがそう感じるならば、答えを正しいとマークしてください。 ;-) – stefanobaghino