tasks a-s
This commit is contained in:
parent
47bf37c096
commit
b83f433714
12433 changed files with 156208 additions and 123 deletions
21
Task/Named-parameters/Scheme/named-parameters-1.ss
Normal file
21
Task/Named-parameters/Scheme/named-parameters-1.ss
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
(define (keyarg-parser argdefs args kont)
|
||||
(apply kont
|
||||
(map (lambda (argdef)
|
||||
(let loop ((args args))
|
||||
(cond ((null? args)
|
||||
(cadr argdef))
|
||||
((eq? (car argdef) (car args))
|
||||
(cadr args))
|
||||
(else
|
||||
(loop (cdr args))))))
|
||||
argdefs)))
|
||||
|
||||
(define (print-name . args)
|
||||
(keyarg-parser '((first #f)(last "?"))
|
||||
args
|
||||
(lambda (first last)
|
||||
(display last)
|
||||
(cond (first
|
||||
(display ", ")
|
||||
(display first)))
|
||||
(newline))))
|
||||
8
Task/Named-parameters/Scheme/named-parameters-2.ss
Normal file
8
Task/Named-parameters/Scheme/named-parameters-2.ss
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
=> (print-name)
|
||||
?
|
||||
=> (print-name 'first "John")
|
||||
?, John
|
||||
=>(print-name 'first "John" 'last "Doe")
|
||||
Doe, John
|
||||
=>(print-name 'last "Doe")
|
||||
Doe
|
||||
Loading…
Add table
Add a link
Reference in a new issue