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

  • Call Me Howard

    Call Me Howa

    18 AĞUSTOS 2012
  • the one am radio

    the one am r

    6 Mayıs 2006
  • TouchePro

    TouchePro

    27 EYLÜL 2007