2011-09-22 16 views
5

Gram z wyższymi rodzajami i próbuję użyć komponowania. Mam następujący kod:Czy mogę skomponować funkcję, która ma ukryty argument?

def p2(a : Int) = a + 2 
def p3(a : Int) = a + 3 
val p5 = p2 _ compose p3 
def pn3[T](n : T)(implicit ev : Numeric[T]) = ev.plus(n, ev.fromInt(3)) 
val pn5 = p2 _ compose pn3 

to wszystko działa aż do ostatniego wiersza: „Chcę Numeric[Int]

error: could not find implicit value for parameter ev: Numeric[T] 

Który ma sens, ale jak mogę powiedzieć to,

+0

Poważnie, @aioobe? Zmieniłeś moje odniesienie do słynnego autora i teoretyka typu oprogramowania, Alexandre'a Dumasa? Westchnienie. – Malvolio

+0

heh. Nie mam pojęcia. Zrobiłem to dla ciebie *. Widziałem pytania z lepszym brzmieniem, niż to się zamyka ... – aioobe

Odpowiedz

9

prób i błędów;)

val pn5 = p2 _ compose pn3[Int] 
+0

D'oh. Twarz do biurka. – Malvolio

Powiązane problemy