abe*_*eln 4 scheme functional-programming racket
在Racket中,可以通过例如从函数返回多个值
(define (foo)
(values 1 2 3))
Run Code Online (Sandbox Code Playgroud)
然后我们可以通过做绑定它们
(define-values (one two three) (foo))
Run Code Online (Sandbox Code Playgroud)
现在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
Run Code Online (Sandbox Code Playgroud)