From 373860bb169c69a0fef881a8c4e54287c3a80f08 Mon Sep 17 00:00:00 2001 From: Matthias Felleisen Date: Tue, 1 May 2007 01:55:31 +0000 Subject: [PATCH] append requires 2 args now svn: r6106 --- collects/lang/private/beginner-funs.ss | 2 +- collects/lang/private/teachprims.ss | 16 +++++++++++++--- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/collects/lang/private/beginner-funs.ss b/collects/lang/private/beginner-funs.ss index f9249475e9..43f66e7e8e 100644 --- a/collects/lang/private/beginner-funs.ss +++ b/collects/lang/private/beginner-funs.ss @@ -279,7 +279,7 @@ ((beginner-list* list*) (any ... (listof any) -> (listof any)) "to construct a list by adding multiple items to a list") - ((beginner-append append) ((listof any) ... -> (listof any)) + ((beginner-append append) ((listof any) (listof any) (listof any) ... -> (listof any)) "to create a single list from several, by juxtaposition of the items") (length (list -> number) "to compute the number of items on a list") diff --git a/collects/lang/private/teachprims.ss b/collects/lang/private/teachprims.ss index aa7cbdf2c5..d4d61ab1b8 100644 --- a/collects/lang/private/teachprims.ss +++ b/collects/lang/private/teachprims.ss @@ -1,4 +1,13 @@ +#| tests are at plt/collects/tests/mzscheme/ +collects/tests/mzscheme/beginner.ss + .../beginner-abbr.ss + .../intermediate.ss + .../intermediate-lam.ss + .../advanced.ss +Each one has to run separately, since they mangle the top-level +namespace. +|# (module teachprims mzscheme (require "../imageeq.ss" @@ -76,6 +85,7 @@ (format "~a: last argument must be of type <~a>, given ~e; other args:~a" prim-name type last + ;; all-but-last: (build-arg-list (let loop ([args args]) (cond @@ -143,9 +153,9 @@ (apply list* x))) (define-teach beginner append - (lambda x - (check-last 'append x) - (apply append x))) + (lambda (a b . x) + (check-last 'append (cons a (cons b x))) + (apply append a b x))) (define-teach beginner error (lambda (sym str)