我正在尝试编写一个带有两个函数并组成它们的函数。我尝试了下面的解决方案和其他一些变体,但没有太大的成功。
def compose1[A, B, C](f: A => B, g: B => C)(x: A) = f(g(x))
我得到的错误是
<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,虽然它不是为了学分。这个问题实际上是措辞不好(它实际上是函数声明和我上面使用的句子)并且没有事先给出的例子或解释,我想我对Scala的理解还不够理解题。非常感谢对这个问题的一些阐述,感谢您的帮助!
答案 0 :(得分:3)
仔细查看类型:您尝试将x
(类型A
)提供给函数g
(它需要B
并返回{{1 }})。我确定你可以从这里拿起它。