好奇心: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すべての式を評価して2番目の値を返し、すべての式を評価してn番目、つまり最後の式の値を返します。

  2. prognEmacs Lispでは、Clojureに相当し、do複数の式を1つの式にまとめる手段として使用されます。ifたとえば、Clojureの条件付きで使用する必要があります。


1
良い答え、私はそれを支持した。ただし、形式のために:条件付きでは実際には必要ありませんcondが、暗黙的prognです。
mbork 14

2
ええと、私はClojureのことを話していprognましたif
wasamasa

2
また、Emacsはありprog1かつprog2として内蔵の特殊なフォーム。
cjm 14

1
これは多くのユーザーの構成で使用されています。複数の式を次々に評価するのではなく、このように複数の式を「バンドル」することでパフォーマンスが向上しprognますか?
エレタン

何があなたにそう思わせるのか分かりません。 prognCのような言語...におけるブレースブロックと同等である
wasamasaは、
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.