;;; -*-scheme-*- ;;; Mes --- Maxwell Equations of Software ;;; Copyright © 2016 Jan Nieuwenhuizen ;;; ;;; base.mes: This file is part of Mes. ;;; ;;; Mes is free software; you can redistribute it and/or modify it ;;; under the terms of the GNU General Public License as published by ;;; the Free Software Foundation; either version 3 of the License, or (at ;;; your option) any later version. ;;; ;;; Mes is distributed in the hope that it will be useful, but ;;; WITHOUT ANY WARRANTY; without even the implied warranty of ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;;; GNU General Public License for more details. ;;; ;;; You should have received a copy of the GNU General Public License ;;; along with Mes. If not, see . (define-macro (if expr then . else) (list 'cond ;; COND (list expr then) (list #t (list 'cond (list (pair? else) ;; COND (cons (cons 'lambda (cons '() (cons (cons 'begin (cons *unspecified* else)) '()))) '())))))) (define (cons* x . rest) (define (loop rest) (cond ((null? (cdr rest)) (car rest)) ;; COND (#t (cons (car rest) (loop (cdr rest)))))) (loop (cons x rest)))