Clojure oraya kolay bir şekilde liste türleri arasında dönüştürme. | Netgez.com
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

  • Barnacules Nerdgasm

    Barnacules N

    20 Temmuz 2006
  • Electro Posé

    Electro PosÃ

    21 ÅžUBAT 2013
  • Major FX

    Major FX

    6 HAZİRAN 2012