Sequencing and Lets



prog1 form1 &rest forms [function]

form1 and forms are evaluated sequentially, and the value returned by form1 is returned as the value of prog1.


progn {form}* [special]

Forms are evaluated sequentially, and the value of the rightmost form is returned. Progn is a special form because it has a special meaning when it appeared at top level in a file. When such a form is compiled, all inner forms are regarded as they appear at top level. This is useful for a macro which expands to a series of defuns or defmethods, which must appear at top level.


setf {access-form value}* [macro]

assigns value to a generalized-variable access-form.


let ({var $\vert$ (var [value])}*) {declare}* {form}* [special]

introduces local variables. All values are evaluated and assigned to vars in parallel, i.e., (let ((a 1)) (let ((a (1+ a)) (b a)) (list a b))) produces (2 1).


let* ({var $\vert$ (var [value])}*) {declare}* {form}* [special]

introduces local variables. All values are evaluated sequentially, and assigned to vars i.e., (let ((a 1)) (let* ((a (1+ a)) (b a)) (list a b))) produces (2 2).


k-okada 2013-05-21