1

给定一个返回一个值的简单函数,我可以使用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

我已经查看了文档,但唯一相关的valueslet-values,这在这里并不适用。

4

1 回答 1

3

你想define-values,定义等同于let-values

(define (baz) (values 2 3))
(define-values (foo bar) (baz))
于 2015-03-21T22:48:49.933 回答