quasiquote.scm 1.5 KB

12345678910111213141516171819202122232425262728293031323334
  1. ;;; GNU Mes --- Maxwell Equations of Software
  2. ;;; Copyright © 2016,2018 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
  3. ;;;
  4. ;;; This file is part of GNU Mes.
  5. ;;;
  6. ;;; GNU Mes is free software; you can redistribute it and/or modify it
  7. ;;; under the terms of the GNU General Public License as published by
  8. ;;; the Free Software Foundation; either version 3 of the License, or (at
  9. ;;; your option) any later version.
  10. ;;;
  11. ;;; GNU Mes is distributed in the hope that it will be useful, but
  12. ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
  13. ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  14. ;;; GNU General Public License for more details.
  15. ;;;
  16. ;;; You should have received a copy of the GNU General Public License
  17. ;;; along with GNU Mes. If not, see <http://www.gnu.org/licenses/>
  18. ;; Setup output file
  19. (set-current-output-port (open-output-file "test/results/test010.answer"))
  20. ;; Demonstrate using 'S-expression
  21. (display "making a quasiquote with ` character and unquote with ,\n")
  22. (write `(foo ,(+ 1 3) you))
  23. (display "\nmake a quasiquote with ` and unquote with , everything\n")
  24. (write `(,(+ 1 2 3) ,(+ 4 5 6) ,(+ 7 8 9)))
  25. (display "\nmake a quasiquote with ` and unquote with unquote\n")
  26. (write `(foo (unquote (+ 1 3)) you))
  27. (display "\nmake a quasiquote with quasiquote and unquote with ,\n")
  28. (write (quasiquote (foo ,(+ 1 3) you)))
  29. (display "\nmake a quasiquote with quasiquote and unquote with unquote\n")
  30. (write (quasiquote (foo (unquote (+ 1 3)) you)))
  31. (exit 0)