multiple-value-list — 다중 반환값을 리스트로
multiple-value-list — 다중 반환값을 리스트로
Common Lisp 함수는 값을 여러 개 돌려줄 수 있어요. 필연적으로 다중 반환값을 다뤄야 하는데, 이 값들을 한꺼번에 "리스트"로 받고 싶다면 어떻게 해야 할까요? multiple-value-list는 폼이 돌려주는 여러 값을 리스트로 묶어주는 매크로예요.
본문
multiple-value-list는 form을 평가하고, 그 폼이 돌려주는 다중 값들을 리스트로 만드는 매크로예요.
multiple-value-list form
=> list
예를 들어 floor는 몫과 나머지를 두 값으로 돌려줘요. 그것을 리스트로 받으면 이렇게 돼요.
(multiple-value-list (floor -3 4))
=> (-1 1)
multiple-value-list와 values-list는 서로 역연산이에요. values-list가 리스트를 받아 각 원소를 값으로 펼친다면, multiple-value-list는 값을 모아 리스트로 만드는 셈이죠. 또 multiple-value-list는 multiple-value-call로 이렇게 표현할 수도 있어요.
(multiple-value-list form)
== (multiple-value-call #'list form)
함께 보기
values-list, multiple-value-call