在Racket中,可以通过例如从函数返回多个值。
(define (foo)
(values 1 2 3))
然后我们可以通过
绑定它们(define-values (one two three) (foo))
现在one
绑定到1
,two
绑定到2
,three
绑定到3
。
我有一个返回多个值的函数,但我只对其中一些感兴趣。有没有办法提取“有趣的”返回值,而“忽略”(即不绑定)其余的,Haskell中的la _
模式?
答案 0 :(得分:6)
您可以使用match-let-values
或match-define-values
(取决于您是否需要词汇或顶级变量):
> (match-let-values (((_ _ a _) (values 1 2 3 4)))
a)
; => 3
> (match-define-values (_ a _ _) (values 1 2 3 4))
> a
; => 2