Commit | Line | Data |
---|---|---|
d0efab87 CM |
1 | ;; aliases for common clojure names to mal builtins |
2 | ;; NOTE: this is a hack | |
e6d41de4 | 3 | |
d0efab87 CM |
4 | ;; Origin: https://github.com/chr15m/frock |
5 | ||
6 | ; TODO: re-implement as actually useful macros: | |
7 | ; destructuring, arg checking, etc. | |
8 | ||
9 | (def! _alias_add_implicit | |
10 | (fn* [special added] | |
11 | (fn* [x & xs] | |
12 | (list special x (cons added xs))))) | |
13 | ||
14 | (defmacro! let (_alias_add_implicit 'let* 'do)) | |
15 | (defmacro! when (_alias_add_implicit 'if 'do)) | |
16 | (defmacro! def (_alias_add_implicit 'def! 'do)) | |
17 | (defmacro! fn (_alias_add_implicit 'fn* 'do)) | |
18 | (defmacro! defn (_alias_add_implicit 'def! 'fn)) | |
19 | ||
20 | (def! partial (fn* [pfn & args] | |
21 | (fn* [& args-inner] | |
22 | (apply pfn (concat args args-inner))))) |