给定一个返回一个值的简单函数,我可以使用define
将其返回值绑定到一个名称
(define (foo) 1)
(define bar (foo))
但是,当函数使用values
返回多个值时,似乎无法做到这一点。
(define (baz) (values 2 3))
(define quux (baz))
; define-values: result arity mismatch;
; expected number of values not received
; expected: 1
; received: 2
; from:
; in: definition of quux
; values...:
; 2
; 3
我查看了文档,但与values
相关的唯一内容是let-values
,这里并没有真正适用。
答案 0 :(得分:2)
您需要define-values
,其定义相当于let-values
。
(define (baz) (values 2 3))
(define-values (foo bar) (baz))