LISP provides the following types of constructs to handle looping requirements. Click the following links to check their detail.| Construct | Description |
|---|---|
| loop | The loop construct is the simplest form of iteration provided by LISP. In its simplest form, it allows you to execute some statement(s) repeatedly until it finds a return statement. |
| loop for | The loop for construct allows you to implement a for-loop like iteration as most common in other languages. |
| do | The do construct is also used for performing iteration using LISP. It provides a structured form of iteration. |
| dotimes | The dotimes construct allows looping for some fixed number of iterations. |
| dolist | The dolist construct allows iteration through each element of a list. |
Gracefully Exiting From a Block
The block and return-from allows you to exit gracefully from any nested blocks in case of any error.The block function allows you to create a named block with a body composed of zero or more statements. Syntax is:
(block block-name( ... ... ))The return-from function takes a block name and an optional (the default is nil) return value.
The following example demonstrates this:
Example
Create a new source code file named main.lisp and type the following code in it:(defun demo-function (flag) (print 'entering-outer-block) (block outer-block (print 'entering-inner-block) (print (block inner-block (if flag (return-from outer-block 3) (return-from inner-block 5) ) (print 'This-wil--not-be-printed)) ) (print 'left-inner-block) (print 'leaving-outer-block) t) ) (demo-function t) (terpri) (demo-function nil)When you click the Execute button, or type Ctrl+E, LISP executes it immediately and the result returned is:
ENTERING-OUTER-BLOCK ENTERING-INNER-BLOCK ENTERING-OUTER-BLOCK ENTERING-INNER-BLOCK 5 LEFT-INNER-BLOCK LEAVING-OUTER-BLOCK
No comments:
Post a Comment