|
278 | 278 | `[splice-unquote 0] |
279 | 279 | ;=>[splice-unquote 0] |
280 | 280 |
|
281 | | -;; Debugging quasiquote |
282 | | -(quasiquoteexpand nil) |
283 | | -;=>nil |
284 | | -(quasiquoteexpand 7) |
285 | | -;=>7 |
286 | | -(quasiquoteexpand a) |
287 | | -;=>(quote a) |
288 | | -(quasiquoteexpand {"a" b}) |
289 | | -;=>(quote {"a" b}) |
290 | | -(quasiquoteexpand ()) |
291 | | -;=>() |
292 | | -(quasiquoteexpand (1 2 3)) |
293 | | -;=>(cons 1 (cons 2 (cons 3 ()))) |
294 | | -(quasiquoteexpand (a)) |
295 | | -;=>(cons (quote a) ()) |
296 | | -(quasiquoteexpand (1 2 (3 4))) |
297 | | -;=>(cons 1 (cons 2 (cons (cons 3 (cons 4 ())) ()))) |
298 | | -(quasiquoteexpand (nil)) |
299 | | -;=>(cons nil ()) |
300 | | -(quasiquoteexpand (1 ())) |
301 | | -;=>(cons 1 (cons () ())) |
302 | | -(quasiquoteexpand (() 1)) |
303 | | -;=>(cons () (cons 1 ())) |
304 | | -(quasiquoteexpand (1 () 2)) |
305 | | -;=>(cons 1 (cons () (cons 2 ()))) |
306 | | -(quasiquoteexpand (())) |
307 | | -;=>(cons () ()) |
308 | | -(quasiquoteexpand (f () g (h) i (j k) l)) |
309 | | -;=>(cons (quote f) (cons () (cons (quote g) (cons (cons (quote h) ()) (cons (quote i) (cons (cons (quote j) (cons (quote k) ())) (cons (quote l) ()))))))) |
310 | | -(quasiquoteexpand (unquote 7)) |
311 | | -;=>7 |
312 | | -(quasiquoteexpand a) |
313 | | -;=>(quote a) |
314 | | -(quasiquoteexpand (unquote a)) |
315 | | -;=>a |
316 | | -(quasiquoteexpand (1 a 3)) |
317 | | -;=>(cons 1 (cons (quote a) (cons 3 ()))) |
318 | | -(quasiquoteexpand (1 (unquote a) 3)) |
319 | | -;=>(cons 1 (cons a (cons 3 ()))) |
320 | | -(quasiquoteexpand (1 b 3)) |
321 | | -;=>(cons 1 (cons (quote b) (cons 3 ()))) |
322 | | -(quasiquoteexpand (1 (unquote b) 3)) |
323 | | -;=>(cons 1 (cons b (cons 3 ()))) |
324 | | -(quasiquoteexpand ((unquote 1) (unquote 2))) |
325 | | -;=>(cons 1 (cons 2 ())) |
326 | | -(quasiquoteexpand (a (splice-unquote (b c)) d)) |
327 | | -;=>(cons (quote a) (concat (b c) (cons (quote d) ()))) |
328 | | -(quasiquoteexpand (1 c 3)) |
329 | | -;=>(cons 1 (cons (quote c) (cons 3 ()))) |
330 | | -(quasiquoteexpand (1 (splice-unquote c) 3)) |
331 | | -;=>(cons 1 (concat c (cons 3 ()))) |
332 | | -(quasiquoteexpand (1 (splice-unquote c))) |
333 | | -;=>(cons 1 (concat c ())) |
334 | | -(quasiquoteexpand ((splice-unquote c) 2)) |
335 | | -;=>(concat c (cons 2 ())) |
336 | | -(quasiquoteexpand ((splice-unquote c) (splice-unquote c))) |
337 | | -;=>(concat c (concat c ())) |
338 | | -(quasiquoteexpand []) |
339 | | -;=>(vec ()) |
340 | | -(quasiquoteexpand [[]]) |
341 | | -;=>(vec (cons (vec ()) ())) |
342 | | -(quasiquoteexpand [()]) |
343 | | -;=>(vec (cons () ())) |
344 | | -(quasiquoteexpand ([])) |
345 | | -;=>(cons (vec ()) ()) |
346 | | -(quasiquoteexpand [1 a 3]) |
347 | | -;=>(vec (cons 1 (cons (quote a) (cons 3 ())))) |
348 | | -(quasiquoteexpand [a [] b [c] d [e f] g]) |
349 | | -;=>(vec (cons (quote a) (cons (vec ()) (cons (quote b) (cons (vec (cons (quote c) ())) (cons (quote d) (cons (vec (cons (quote e) (cons (quote f) ()))) (cons (quote g) ())))))))) |
| 281 | +;; ;; Debugging quasiquote |
| 282 | +;; (quasiquoteexpand nil) |
| 283 | +;; ;=>nil |
| 284 | +;; (quasiquoteexpand 7) |
| 285 | +;; ;=>7 |
| 286 | +;; (quasiquoteexpand a) |
| 287 | +;; ;=>(quote a) |
| 288 | +;; (quasiquoteexpand {"a" b}) |
| 289 | +;; ;=>(quote {"a" b}) |
| 290 | +;; (quasiquoteexpand ()) |
| 291 | +;; ;=>() |
| 292 | +;; (quasiquoteexpand (1 2 3)) |
| 293 | +;; ;=>(cons 1 (cons 2 (cons 3 ()))) |
| 294 | +;; (quasiquoteexpand (a)) |
| 295 | +;; ;=>(cons (quote a) ()) |
| 296 | +;; (quasiquoteexpand (1 2 (3 4))) |
| 297 | +;; ;=>(cons 1 (cons 2 (cons (cons 3 (cons 4 ())) ()))) |
| 298 | +;; (quasiquoteexpand (nil)) |
| 299 | +;; ;=>(cons nil ()) |
| 300 | +;; (quasiquoteexpand (1 ())) |
| 301 | +;; ;=>(cons 1 (cons () ())) |
| 302 | +;; (quasiquoteexpand (() 1)) |
| 303 | +;; ;=>(cons () (cons 1 ())) |
| 304 | +;; (quasiquoteexpand (1 () 2)) |
| 305 | +;; ;=>(cons 1 (cons () (cons 2 ()))) |
| 306 | +;; (quasiquoteexpand (())) |
| 307 | +;; ;=>(cons () ()) |
| 308 | +;; (quasiquoteexpand (f () g (h) i (j k) l)) |
| 309 | +;; ;=>(cons (quote f) (cons () (cons (quote g) (cons (cons (quote h) ()) (cons (quote i) (cons (cons (quote j) (cons (quote k) ())) (cons (quote l) ()))))))) |
| 310 | +;; (quasiquoteexpand (unquote 7)) |
| 311 | +;; ;=>7 |
| 312 | +;; (quasiquoteexpand a) |
| 313 | +;; ;=>(quote a) |
| 314 | +;; (quasiquoteexpand (unquote a)) |
| 315 | +;; ;=>a |
| 316 | +;; (quasiquoteexpand (1 a 3)) |
| 317 | +;; ;=>(cons 1 (cons (quote a) (cons 3 ()))) |
| 318 | +;; (quasiquoteexpand (1 (unquote a) 3)) |
| 319 | +;; ;=>(cons 1 (cons a (cons 3 ()))) |
| 320 | +;; (quasiquoteexpand (1 b 3)) |
| 321 | +;; ;=>(cons 1 (cons (quote b) (cons 3 ()))) |
| 322 | +;; (quasiquoteexpand (1 (unquote b) 3)) |
| 323 | +;; ;=>(cons 1 (cons b (cons 3 ()))) |
| 324 | +;; (quasiquoteexpand ((unquote 1) (unquote 2))) |
| 325 | +;; ;=>(cons 1 (cons 2 ())) |
| 326 | +;; (quasiquoteexpand (a (splice-unquote (b c)) d)) |
| 327 | +;; ;=>(cons (quote a) (concat (b c) (cons (quote d) ()))) |
| 328 | +;; (quasiquoteexpand (1 c 3)) |
| 329 | +;; ;=>(cons 1 (cons (quote c) (cons 3 ()))) |
| 330 | +;; (quasiquoteexpand (1 (splice-unquote c) 3)) |
| 331 | +;; ;=>(cons 1 (concat c (cons 3 ()))) |
| 332 | +;; (quasiquoteexpand (1 (splice-unquote c))) |
| 333 | +;; ;=>(cons 1 (concat c ())) |
| 334 | +;; (quasiquoteexpand ((splice-unquote c) 2)) |
| 335 | +;; ;=>(concat c (cons 2 ())) |
| 336 | +;; (quasiquoteexpand ((splice-unquote c) (splice-unquote c))) |
| 337 | +;; ;=>(concat c (concat c ())) |
| 338 | +;; (quasiquoteexpand []) |
| 339 | +;; ;=>(vec ()) |
| 340 | +;; (quasiquoteexpand [[]]) |
| 341 | +;; ;=>(vec (cons (vec ()) ())) |
| 342 | +;; (quasiquoteexpand [()]) |
| 343 | +;; ;=>(vec (cons () ())) |
| 344 | +;; (quasiquoteexpand ([])) |
| 345 | +;; ;=>(cons (vec ()) ()) |
| 346 | +;; (quasiquoteexpand [1 a 3]) |
| 347 | +;; ;=>(vec (cons 1 (cons (quote a) (cons 3 ())))) |
| 348 | +;; (quasiquoteexpand [a [] b [c] d [e f] g]) |
| 349 | +;; ;=>(vec (cons (quote a) (cons (vec ()) (cons (quote b) (cons (vec (cons (quote c) ())) (cons (quote d) (cons (vec (cons (quote e) (cons (quote f) ()))) (cons (quote g) ())))))))) |
0 commit comments