2013-04-07 15 views
9

Clojure'a nispeten yeniyim ama birçok projenin bir "çekirdek" ad alanı uyguladığını fark ettim; Örneğin. foobar.core çok yaygın bir model gibi görünüyor. Bunun arkasındaki tarih nedir ve neden de facto standardıdır?"Çekirdek" ad alanı nomenklatürü nereden geliyor?

+0

Muhtemelen 'clojure.core' sözleşmesini takip ediyor. Bununla birlikte, Stuart Sierra ve diğerleri, her türlü kütüphaneyi (ve varsayılan Leiningen projeleri) 'whatever.core' üzerinde aşırı konuşurlar. – noahlz

+10

Pro ipucu: 'lein new foo.bar' bar/core' yerine' foo/bar' yaratacaktır. – vemv

+0

@noahz Bir bağlantınız var mı? Stuart'ın bu konuyla ilgili fikirlerini okumak istiyorum. – maxcountryman

cevap

2

Sadece bir şeyin "çekirdek" işlevini temsil eden genel bir addır. Clojure'ın temel işlevleri, birçok farklı sorun alanında ihtiyaç duyabileceğiniz çok genel işlevlere sahip genel amaçlı bir programlama dili tanımlar. Yalnızca belirli bir sorun etki alanı için geçerli olan işlevler, clojure.string veya clojure.set gibi alana özel ad alanlarına gider. clojure.core Clojure temel işlevi olan, - clojure.core sonra Leiningen gibi

Araçlar yazmak için çalışıyoruz bir programın önsel Ne tür bilemez, bu yüzden modellenmiş, varsayılan olarak foo/core ad ayarlayacak foo.core foo'nun temel işlevidir. Kodunuzun toplu daha semantik olarak anlamlı ikamet böylece

Eğer çekirdek ad daha az jenerik isim vermek, ya da sadece (örneğin, -main fonksiyonunu tutarak gibi) önyükleyici başlaması foo/core kullanabilirsek

, yani teşvik ediyor bunun yerine ad alanları. Bu, daha sonra çalışmak istediğiniz özel kodu bulmanıza yardımcı olur.