Test macro list expansion

This commit is contained in:
2021-04-02 12:51:15 -06:00
parent 1e3fe69bb4
commit 72887e7b34
3 changed files with 27 additions and 2 deletions

View File

@@ -14,4 +14,9 @@ class MacroTestCase extends Test {
Assert.equals(5, myVar);
Assert.equals(6, myFunc());
}
function testExpandList() {
Assert.equals(6, sum1());
Assert.equals(6, sum2());
}
}

View File

@@ -3,4 +3,13 @@
(defvar ,varName 5)
(defun ,funcName [] 6)})
(defMultiple myVar myFunc)
(defMultiple myVar myFunc)
(defmacro variadicPlus [&rest l]
`(+ ,@l))
(defmacro listPlus [l]
`(+ ,@l))
// Both forms of passing expression lists to macros should work:
(defun sum1 [] (variadicPlus 1 2 3))
(defun sum2 [] (listPlus [1 2 3]))