2012-06-24 13 views

cevap

2

Diğer tüm yöntemler lteq'a geri dönerken, tahminim daha verimli bir şekilde lteq yazmayı teşvik etmektir. Yani, bir Option oluşturmak istemezsiniz, sonra haritalandırın. Varsayılan olarak uygulanan tryCompare olmamasının sebebi .:,

def tryCompare(x: T, y: T) = { 
    val p1 = lteq(x, y) 
    val p2 = lteq(y, x) 
    if (p1) { 
    if(p2) Some(0) else Some(-1) 
    } else if (p2) Some(1) else None 
} 

örn ... ve lteq uygularken çirkin override değiştirici yazmaya gerek olmaz - Ben daha çok tersini rica ediyorum. görünümünde bir matematikçi en Dan

Bildiğim kadarıyla bu yüzden belki bu sadece bir 'sol-over', bugüne kadar bütün Scala standart kütüphanesi bünyesinde asla kullanılmaz tryCompare gördüğünüz gibi ...

+0

(yani ben!) nokta Her nasılsa, 'tryCompare' 'ı hiçbir şekilde kabul edilmeden bırakacak kadar güzel hisseder, ancak insanları optimize edilmiş kod yazmaya teşvik ederseniz, lteq'in daha iyi bir geçersiz kılma adayı olduğunu kabul edersiniz. –

İlgili konular