#! /bin/sh # -*-scheme-*- echo ' ()' | cat $($(dirname $0)/../scripts/include.mes $0) $0 /dev/stdin | $(dirname $0)/../scripts/mes "$@" #paredit:|| exit $? !# ;;; -*-scheme-*- ;;; Mes --- Maxwell Equations of Software ;;; Copyright © 2016 Jan Nieuwenhuizen ;;; ;;; let.test: 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 . (mes-use-module (mes base-0)) (mes-use-module (mes base)) (mes-use-module (mes quasiquote)) (mes-use-module (mes let)) (mes-use-module (mes test)) (pass-if "first dummy" #t) (pass-if-not "second dummy" #f) (let () (define *top-let-a* '*top-let-a*) #f) (pass-if "top let " (seq? (and (defined? '*top-let-a*) *top-let-a*) #f)) (pass-if "let loop" (sequal? (let loop ((lst '(3 2 1))) (cond ((null? lst) '()) (#t (cons (car lst) (loop (cdr lst)))))) '(3 2 1))) (pass-if "let* comments" (seq? (let* ((aa 2) (bb (+ aa 3)) #! boo !# ;;(bb 4) ) bb) 5)) (pass-if "letrec" (seq? (letrec ((factorial (lambda (n) (cond ((= n 1) 1) (#t (* n (factorial (- n 1)))))))) (factorial 4)) 24)) (result 'report)