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

  • Karan Thakur

    Karan Thakur

    23 HAZİRAN 2010
  • MagmaRhino

    MagmaRhino

    16 Temmuz 2011
  • ParryGripp

    ParryGripp

    12 AĞUSTOS 2006