호기심 : progn은 무엇을 의미합니까?


21

Emacs 문서에 따르면 :

progn is a special form in `C source code'.

(progn BODY...)

Eval BODY forms sequentially and return value of last one.
  1. 무엇을 progn의미합니까 (또는 그 기원)?
  2. 사용법 : Clojure->매크로 와 동일 합니까?

답변:


31
  1. prognCL와 같은 Lisp 방언에서 빌린 특별한 형태입니다. 구현에서 여러 개의 prog, 평가되는 표현식 및 리턴되는 표현식 값을 지정하는 숫자로 구성됩니다. prog1예를 들어 모든 표현식을 평가하고 첫 번째 값을 prog2리턴하고, progn모든 표현식을 평가 하고 두 번째 값을 리턴하며, 모든 표현식을 평가하고 n 번째 또는 오히려 마지막 표현식의 값을 리턴합니다.

  2. prognEmacs에서 Lisp는 do여러 표현식을 단일 표현식으로 묶는 수단으로 사용되는 Clojure와 같습니다 . if예를 들어 Clojure의 조건부 로 사용해야합니다 .


1
좋은 대답입니다. 그러나 형식 을 위해 조건부 에는 실제로 필요 하지 않으며 cond암시 적 progn입니다.
mbork

2
어, 암시하지 않는 Clojure에 대해 말하고 있었다 progn에서 ITS if.
wasamasa

2
이맥스는이 prog1prog2같은 내장 된 특별한 형태.
cjm

1
나는 이것이 많은 사용자 구성에서 사용되는 것을 보았습니다. 여러 표현식을 "번들링"하여 이러한 방식으로 성능을 향상시키는 방법이 progn있습니까?
elethan December

어떻게 생각하는지 모르겠습니다. progn는 C 형 언어 ...의 브레이스 블록의 상당
wasamasa는
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.