如何将列表变成多个 return 值?

How do I turn a list into multiple return values?

假设我有一个列表,但我想将它转换成values。例如:

(define (f mylist)
  (values ...))  ; <- What do I write here?

如果我调用 (f '(1 2 3)),我希望得到与 (values 1 2 3) 相同的结果。我该怎么做?

只需使用apply:

(define (f mylist)
  (apply values mylist))

你会得到想要的结果:

(f '(1 2 3))
=> 1
   2
   3