SORU
23 ŞUBAT 2011, ÇARŞAMBA


Clojure oraya kolay bir şekilde liste türleri arasında dönüştürme.

Sık sık kendimi bir vektör istediğim zaman tembel bir listesini kullanarak, ve tersi buluyorum. Ayrıca, bazen gerçekten haritalar bir dizi istediğinde haritalar, bir vektör var. Bana bu türler arasında dönüştürme yardımcı olmak için herhangi bir yardımcı işlevler var mı?

CEVAP
24 ŞUBAT 2011, PERŞEMBE


Unutmayalım ki, güvenilir eski into sağlar birşey aldınız seqmümkün (liste, vektör, harita, set, sıralanmış-map) ve boş bir kap ister dolu, ve koyar into.

(into [] '(1 2 3 4)) ==> [1 2 3 4]         "have a lazy list and want a vector"
(into #{} [1 2 3 4]) ==> #{1 2 3 4}        "have a vector and want a set"
(into {} #{[1 2] [3 4]}) ==> {3 4, 1 2}    "have a set of vectors want a map"
(into #{} [{1 2} {3 4}]) ==> #{{1 2} {3 4}} "have a vector of maps want a set of maps"

into uygun yeni girişler bir koleksiyon Türüne göre ekleme için temel soyutlama olan conj, etrafında sarıcı. Bu çok güzel akış yapan Clojure prensip üzerine inşa edilirbirleştirilebilir soyutlamalarbu durumda 7* *toplama üzerine conj üstüne seq.

Yukarıdaki örnekler hala beste de, eğer alıcı olmak ne kadar geçti zamanında: temel soyutlamalar (seq conj) uygulanan tüm koleksiyonları (ve birçok Java koleksiyonları da), böylece daha yüksek soyutlamalar gerek yok endişelenecek çok özel verileri ile ilgili köşe durumda.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Official Clouds

    Official Clo

    1 HAZİRAN 2011
  • UlyssesForever's channel

    UlyssesForev

    28 ŞUBAT 2012
  • Yo Mama

    Yo Mama

    18 EYLÜL 2005