Return Styles: Pseud0ch, Terminal, Valhalla, NES, Geocities, Blue Moon. Entire thread

Macro-writing challenge

Name: Anonymous 2016-01-16 13:19

Write a macro check-arguments-non-nil to be used in function definitions, that would expand to assertion about every argument being non-nil.
The intended usage of this macro:

(defun foo (a b c d)
(check-arguments-non-nil)
foo-body)


This should expand to:

(defun foo (a b c d)
(assert (and (not (null a)) (not (null b)) (not (null c)) (not (null d)))
(a b c d)
"Null argument in FOO")
foo-body)


The macro must work whatever the number and names of the function parameters.

Name: Anonymous 2016-01-21 7:39

>>49
which are extensible to whatever you want at the raw syntax level.
At first glace, though, I will say it's generally bad form for macros to blindly insert local variable names into whatever it's generating
Do you see there are some limits inherent in parsing stage? Even at AST-level you can't have the freedom to manipulate lexer-level tokens.

Newer Posts
Don't change these.
Name: Email:
Entire Thread Thread List