2011-06-22 18 views
5

kullanıyorum keyfi Clojure kaynak yükleyebilirsiniz: namespace sağlanmadı iseGeçerli ad alanına (çekirdek değil) dize nasıl yüklenir?

(load-string source)

Ancak, clojure.core ad alanına kod yükler. aşağıdaki kodu Örneğin

: başka bir ad bu kodu yüklemek için bir yol, tercihen aynı olduğu, şimdi

#'clojure.core/add

:

(load-string "(defn add [a b] (+ a b))")

bir işlevi tanımlar load-string işlevinin çağrıldığı bir?

(. Değerlendirmeye önce source dizeye bir isim alanı bildiriminden prepending dışında ben sorunu çözmek olacağını biliyorum - Bilmek istiyorum Tercih yolu yoktur)

cevap

11

def ihtiyaçları karar ne zaman neyi namspace bir Yeni işlev, ns var değerinin geçerli değerine bakmalı ve yeni işlevi bu ad alanına ekler. Çünkü ns yük değişkenini çağırmadan önce dinamik olarak bağlayabilmeniz için ,

İlgili konular