Env: Load lisp code at runtime from files
This commit is contained in:
@@ -0,0 +1,12 @@
|
||||
|
||||
(defmacro! cond (fn* [& xs]
|
||||
(if (> (count xs) 0)
|
||||
(list 'if (first xs)
|
||||
(if (> (count xs) 1)
|
||||
(nth xs 1)
|
||||
(throw "odd number of forms to cond"))
|
||||
(cons 'cond (rest (rest xs)))))))
|
||||
|
||||
;; Local Variables:
|
||||
;; eval: (emacs-lisp-mode)
|
||||
;; End:
|
||||
@@ -0,0 +1,14 @@
|
||||
|
||||
(defmacro! defmacro
|
||||
(fn* [name args & body]
|
||||
`(defmacro! ~name (fn* ~args (do ~@body)))))
|
||||
|
||||
(defmacro defn [name args & body]
|
||||
`(def! ~name (fn* ~args (do ~@body))))
|
||||
|
||||
(defmacro def [name & body]
|
||||
`(def! ~name ~@body))
|
||||
|
||||
;; Local Variables:
|
||||
;; eval: (emacs-lisp-mode)
|
||||
;; End:
|
||||
@@ -0,0 +1,10 @@
|
||||
|
||||
(defn load-file [filename]
|
||||
(eval (read-string (str "(do " (slurp filename) "\nnil)"))))
|
||||
|
||||
(defn load [filename]
|
||||
(eval (read-string (str "(let* [] (do " (slurp filename) "))"))))
|
||||
|
||||
;; Local Variables:
|
||||
;; eval: (emacs-lisp-mode)
|
||||
;; End:
|
||||
@@ -0,0 +1,6 @@
|
||||
|
||||
(def! *host-language* "C++")
|
||||
|
||||
;; Local Variables:
|
||||
;; eval: (emacs-lisp-mode)
|
||||
;; End:
|
||||
@@ -0,0 +1,7 @@
|
||||
|
||||
(defn not [cond]
|
||||
(if cond false true))
|
||||
|
||||
;; Local Variables:
|
||||
;; eval: (emacs-lisp-mode)
|
||||
;; End:
|
||||
Reference in New Issue
Block a user