Scala函数链和类型

时间:2014-05-12 00:10:17

标签: function scala chain

def t[A] = (l:Seq[A]) => l tail
def r[A] = (r:Seq[A]) => r reverse

(Function.chain(List(r[Int], t[Int])))(List(1,2,3,4))
  

列表(3,2,1)

正如所料。但是,我如何概括类型?如果我说:

(Function.chain(List(r[A], t[A])))(List(1,2,3,4))

或     (Function.chain(List(r,t)))(List(1,2,3,4))

在第一个中我找不到类型A,第二个类型不匹配;发现:需要Int(1):没什么

显然遗漏了一些东西,但我不明白这种情况下的类型语法。

1 个答案:

答案 0 :(得分:1)

如果您希望tr处理任何类型的序列,您可以这样做:

def t = (l: Seq[Any]) => l.tail
def r = (l: Seq[Any]) => l.reverse

(Function.chain(List(r, t)))(List(1, 2, "three", 4, 5))
相关问题