2011-09-22 28 views
5

Daha yüksek çeşitlerle oynuyorum ve compose kullanmaya çalışıyorum.Gizli bir argümanı olan bir işlev oluşturabilir miyim?

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 

Bu son satırına kadar tüm işleri: Aşağıdaki kodu var "! Ben Numeric[Int] istiyorum"

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

ama bunu söylemek, nasıl

+0

, @aioobe? Ünlü yazar ve yazılım türü teorisyen Alexandre Dumas'la ilgili referansımı mı düzenlediniz? İç çekmek. – Malvolio

+0

heh. Hiç bir fikrim yoktu. Ama sen yaptın * sen *. Daha iyi bir ifadeyle soruları daha fazla kapalı tuttuğumdan daha iyi anladım ... – aioobe

cevap

9

Deneme yanılma;) Ciddi

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

D'oh. Masaya yüz. – Malvolio

İlgili konular