SORU
2 Temmuz 2011, CUMARTESİ


Scala listesi birleştirme, ::: vs

Scala içinde bitiştirmek listeleri için ::: arasında herhangi bir fark var mı?

scala> List(1,2,3)    List(4,5)
res0: List[Int] = List(1, 2, 3, 4, 5)

scala> List(1,2,3) ::: List(4,5)
res1: List[Int] = List(1, 2, 3, 4, 5)

scala> res0 == res1
res2: Boolean = true

the documentation ::: Listözel ise daha genel gibi görünüyor. İkincisi diğer fonksiyonel dillerde kullanılan çünkü sağlanır?

CEVAP
2 Temmuz 2011, CUMARTESİ


Eski. Liste aslında dilleri görünümlü işlevsel olarak tanımlanmıştır:

1 :: 2 :: Nil // a list
list1 ::: list2  // concatenation of two lists

list match {
  case head :: tail => "non-empty"
  case Nil          => "empty"
}

Elbette, Scala diğer koleksiyonlar, ad-hoc bir şekilde gelişti. 2.8 çıktığında, koleksiyon bağlamak için kullanabilirsiniz, böylece maksimum kod yeniden ve tutarlı API için yeniden dizayn edildiherhangi biriki koleksiyon -- ve hatta kullanımına. Liste, ancak, orijinal operatörleri, itiraz var, bir veya iki dışında tutmak için var.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Mindy

    Mindy

    20 NİSAN 2006
  • Phymec

    Phymec

    18 Temmuz 2009
  • Study with Substance P

    Study with S

    31 Mayıs 2008