2012-06-24 11 views

Odpowiedz

5

Jest grubsza:

namespace > files > vars 

zauważyć, że:

  • Przestrzenie nazw są często zdefiniowane w jednym pliku, ale nie muszą być (można użyć wielu plików do zdefiniowania nazw)
  • vars może zawierać wszystko: funkcje, obiekty Java, dane, makra itp. W większości przypadków będą to funkcje lub literały danych najwyższego poziomu.
  • Przestrzenie nazw są elementami namic: można je modyfikować w czasie wykonywania. To daje sporo elastyczność zorganizować swój kod na różne sposoby, jeśli chcesz (można generować i wypełnić swoje nazw programowo na przykład)

Patrz także:

0

Przestrzenie nazw Clojure są pakietami java, więc większość programów Clojure jest zorganizowanych podobnie jak program java, co najmniej na poziomie pakietu.

Po poziomie pakietu widzę wiele programów Clojure, które są bardziej płaskie niż ich odpowiedniki w języku Java.

+1

Przestrzenie nazw Clojure są często używane w pakietach java, ale na pewno są inaczej implementowane z inną semantyką. Zobacz klasę klasy [clojure.lang.Namespace] (https://github.com/clojure/clojure/blob/d0c380d9809fd242bec688c7134e900f0bbedcac/src/jvm/clojure/lang/Namespace.java). Clojure ma koncepcję [libs] (http://clojure.org/libs), które są udostępniane jako zasoby java i zwykle udostępniają jedną przestrzeń nazw clojure. –

Powiązane problemy