python Q1: WWSD: Macros One thing to keep in mind when doing this question, builtins get rendered as so scm> + #[+] scm> list #[list] If evaluating an expression causes an error, type SchemeError. If nothing is displayed, type Nothing. scm> + ______ scm> list ______ scm> (define-macro (f x) (car x)) ______ scm> (f (2 3 4)) ; type SchemeError for error, or Nothing for nothing ______ scm> (f (+ 2 3)) ______ scm> (define x 2000) ______ scm> (f (x y z)) ______ scm> (f (list 2 3 4)) ______ scm> (f (quote (2 3 4))) ______ scm> (define quote 7000) ______ scm> (f (quote (2 3 4))) ______ scm> (define-macro (g x) (+ x 2)) ______ scm> (g 2) ______ scm> (g (+ 2 3)) ______ scm> (define-macro (h x) (list '+ x 2)) ______ scm> (h (+ 2 3)) ______ scm> (define-macro (if-else-5 condition consequent) `(if ,condition ,consequent 5)) ______ scm> (if-else-5 #t 2) ______ scm> (if-else-5 #f 3) ______ scm> (if-else-5 #t (/ 1 0)) ______ scm> (if-else-5 #f (/ 1 0)) ______ scm> (if-else-5 (= 1 1) 2) ______
python
Q1: WWSD: Macros
One thing to keep in mind when doing this question, builtins get rendered as so
scm> + #[+] scm> list #[list] |
If evaluating an expression causes an error, type SchemeError. If nothing is displayed, type Nothing.
scm> + ______ scm> list
______ scm> (define-macro (f x) (car x))
______ scm> (f (2 3 4)) ; type SchemeError for error, or Nothing for nothing
______ scm> (f (+ 2 3))
______ scm> (define x 2000)
______ scm> (f (x y z))
______ scm> (f (list 2 3 4))
______ scm> (f (quote (2 3 4)))
______ scm> (define quote 7000)
______ scm> (f (quote (2 3 4)))
______ |
scm> (define-macro (g x) (+ x 2)) ______ scm> (g 2) ______ scm> (g (+ 2 3)) ______ scm> (define-macro (h x) (list '+ x 2)) ______ scm> (h (+ 2 3)) ______ |
scm> (define-macro (if-else-5 condition consequent) `(if ,condition ,consequent 5)) ______ scm> (if-else-5 #t 2) ______ scm> (if-else-5 #f 3) ______ scm> (if-else-5 #t (/ 1 0)) ______ scm> (if-else-5 #f (/ 1 0)) ______ scm> (if-else-5 (= 1 1) 2) ______ |
Trending now
This is a popular solution!
Step by step
Solved in 3 steps