在Racket中,可以通过例如从函数返回多个值
(define (foo) (values 1 2 3))
然后我们可以通过做绑定它们
(define-values (one two three) (foo))
现在one
必然1
,two
到2
和three
到3
.
我有一个返回多个值的函数,但我只对它们中的一些感兴趣.有没有办法提取"有趣的"返回值,而"忽略"(即不绑定)其余的,_
Haskell中的la 模式?
您可以使用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