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):没什么
显然遗漏了一些东西,但我不明白这种情况下的类型语法。
答案 0 :(得分:1)
如果您希望t
和r
处理任何类型的序列,您可以这样做:
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))