给定一个返回一个值的简单函数,我可以使用 define
将其返回值绑定(bind)到一个名称
(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
,它在这里并不适用。
最佳答案
你想要define-values
, 等同于 let-values
的定义。
(define (baz) (values 2 3))
(define-values (foo bar) (baz))
关于lisp - 如何使用 define 将 Racket 的多个返回值绑定(bind)到全局变量名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29188670/