diff options
Diffstat (limited to 'mulapply.scm')
-rw-r--r-- | mulapply.scm | 22 |
1 files changed, 11 insertions, 11 deletions
diff --git a/mulapply.scm b/mulapply.scm index 4f0853c..6c58959 100644 --- a/mulapply.scm +++ b/mulapply.scm @@ -1,5 +1,5 @@ ; "mulapply.scm" Redefine APPLY take more than 2 arguments. -;Copyright (C) 1991 Aubrey Jaffer +;Copyright (C) 1991, 2003 Aubrey Jaffer ; ;Permission to copy this software, to modify it, to redistribute it, ;to distribute modified versions, and to use it for any purpose is @@ -8,7 +8,7 @@ ;1. Any copy made of this software must include this copyright notice ;in full. ; -;2. I have made no warrantee or representation that the operation of +;2. I have made no warranty or representation that the operation of ;this software will be error-free, and I am under no obligation to ;provide any services, by way of maintenance, update, or otherwise. ; @@ -16,13 +16,13 @@ ;material, there shall be no use of my name in any advertising, ;promotional, or sales literature without prior written consent in ;each case. - -(define two-arg:apply apply) +;@ (define apply - (lambda args - (two-arg:apply (car args) (apply:append-to-last (cdr args))))) - -(define (apply:append-to-last lst) - (if (null? (cdr lst)) - (car lst) - (cons (car lst) (apply:append-to-last (cdr lst))))) + (letrec ((apply-2 apply) + (append-to-last + (lambda (lst) + (if (null? (cdr lst)) + (car lst) + (cons (car lst) (append-to-last (cdr lst))))))) + (lambda args + (apply-2 (car args) (append-to-last (cdr args)))))) |