2011-09-22 13 views
5

Estoy jugando con tipos superiores, y estoy tratando de usar componer. Tengo el siguiente código:¿Puedo escribir una función que tenga un argumento implícito?

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 

Todo funciona hasta la última línea: "! Quiero Numeric[Int]"

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

lo cual tiene sentido, pero ¿cómo le digo que,

+0

serio, @aioobe? ¿Editó mi referencia al famoso autor y teorista de software tipo Alexandre Dumas? Suspiro. – Malvolio

+0

heh. No tenía ni idea. Lo hice por * usted * sin embargo. He visto preguntas con mejores palabras que las que se cierran ... – aioobe

Respuesta

9

de prueba y error;)

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

D'oh. Cara a cara. – Malvolio

Cuestiones relacionadas