return — nil 블록에서 반환하기

return — nil 블록에서 반환하기

여러 폼을 감싼 블록(예: do 같은 매크로가 만드는 암묵적 블록)에서 값을 돌려주고 빠져나가고 싶을 때, return을 써요. return매크로로, return-from처럼 nil이라는 이름의 블록에서 반환해요.

출처: RETURN - Common Lisp HyperSpec

시그니처

return [result] =>

본문

인자와 값

  • result이고, 평가돼요. 기본값은 nil이에요.

설명

return-from으로 nil이라는 이름의 블록에서 반환하는 것처럼 동작해요.

예제

(block nil (return) 1) =>  NIL
(block nil (return 1) 2) =>  1
(block nil (return (values 1 2)) 3) =>  1, 2
(block nil (block alpha (return 1) 2)) =>  1
(block alpha (block nil (return 1)) 2) =>  2
(block nil (block nil (return 1) 2)) =>  1

Conditions

없음.

Notes

(return) ==  (return-from nil)
(return form) ==  (return-from nil form)

do 같은 매크로들이 만드는 암묵적 블록은 종종 nil로 이름 지어지기 때문에, return으로 그러한 을 빠져나갈 수 있어요.

더 알아보기

  • block — 명명된 블록
  • return-from — 명명된 블록에서 반환
  • Section 3.1 (Evaluation)