19 lines
752 B
Plaintext
19 lines
752 B
Plaintext
;;;; A package with a private function. mix is declared with defn-, so only
|
|
;;;; the files in this directory may use it: combine calls it here, and the
|
|
;;;; package's other file calls it and hands it out as a value.
|
|
|
|
(defn- mix [a i32 b i32] i32 (+ (* a 10) b))
|
|
|
|
(defn combine [a i32 b i32] i32 (mix a b))
|
|
|
|
;; Code these macros write is the package's own, wherever it is expanded: the
|
|
;; call to mix they answer with is accepted in the importer's file, on its own
|
|
;; and nested inside a do.
|
|
(defmacro mixed [& args] `(mix ~(at args 0) ~(at args 1)))
|
|
|
|
(defmacro mixed-in-do [& args] `(do (mix ~(at args 0) ~(at args 1))))
|
|
|
|
;; What the importer writes and this macro only passes through is still the
|
|
;; importer's.
|
|
(defmacro pass [& args] (at args 0))
|