2010-07-08 13 views
10

Clojure, bazı kalıcı veri yapıları, vektörleri, haritaları ve kümeleri için geçici analoglara sahiptir. Vektörler için, kalıcı vektörler için pop ve conj'a benzer, ancak peek! no'lu pop! ve conj! işlevleri vardır.Neden gözükmüyor? clojure geçici vektörler için işlev?

peek! etkin bir şekilde uygulanmasını sağlayan teknik bir neden var mı? Yoksa geçici vektörler için çoğu kullanım durumunda gerekli değil mi? Her zaman yerleşik bir çözümün olmaması garip gelebilir gibi gözüküyor. Gerçekten iyi ggroup yönelik bir tasarım soru

cevap

5

ama FWIW, ben peek/peek! bir süre önce ve peek! geçici vektörleri uygulamak clojure.lang.IPersistentStack paralel yeni clojure.lang.ITransientStack arayüzü oluşturma ve sahip basit bir mesele gibi görünüyor sağlayarak araştırmak vermedi o.

Tahminimce eğer böyle bir arayüz zaten mevcut değilse (ve geçici olarak kullanılanlar), muhtemelen bir öncelik meselesidir. Tek bir iş parçacıklı hızlı yığın uygulaması, java.util.Stack biçiminde Clojure'da zaten mevcuttur, bu yüzden burada pek çok özelliği kaçırmıyoruz; sözdizimsel kolaylık ve kalıcı vektörlere düzgün dönüşüm muhtemelen Clojure-in-Clojure'da yapıldığı için gelecektir.

(Yatırım harcamasının getirisinin yüksek olduğu durumlarda, nihai amaç Java kod tabanının ilgili bölümünü düşürmek ve bunun yerine Clojure'deki bir uygulama ile değiştirmek olsa bile Clojure'ın Java tarafındaki geliştirmeler anlamlıdır. Beklenen getiriler daha düşüktür, protokollerin daha yaygın olarak kullanılmasını beklemek daha mantıklı olabilir. Geçici olarak işlemek için şu anda kullanılabilen işlevler Clojure'ın kendi ihtiyaçları için yeterlidir ve hiçbir zaman peek! numaralı telefona çağrı yapıldığından emin değilim. ggroup - #clojure için, ilgili bir konuşma hatırlıyorum - bu yüzden dönüş muhtemelen düşük yargılanır ... Ancak, bu değiştirmek için bir taban hareketleri başlayabilirsiniz. :-))

+0

Çok teşekkür ederim, bu yardım etti. Ben bir göz ihtiyacım yok! işlev, ancak bu değişirse, taban kampanyası başlatmayı düşünebilirim. Şimdilik bilge BDFL'yi ya da teğmenlerini rahatsız etmek istemem. –

İlgili konular