
grierson
2021-7-7 11:23:25
I’m coming from clojure. Is there an easy way to destructure parameters? (define (foo (a b & xs)) (+ a b))
(foo '(1 2 3))

sorawee
2021-7-7 11:27:49
One possibility is using define/match

soegaard2
2021-7-7 11:27:49

sorawee
2021-7-7 11:29:53
E.g.,
(define/match (foo xs)
[((list a b _ ...)) (+ a b)])
(foo '(1 2 3))

sorawee
2021-7-7 11:30:41
Or use match-lambda

sorawee
2021-7-7 11:30:44
(define foo
(match-lambda [(list a b _ ...) (+ a b)]))

sorawee
2021-7-7 11:31:32
Ultimately, you are free to create a macro that expands to match
to do whatever you want.