SlideShare a Scribd company logo
 Loops in Lisp
overviewParsing loop clausesLoop syntaxLoop constructsIteration controlConditional and unconditional executionData types
A loop is a series of expressions that are executed one or more times, a process known as iteration.The driving element of the loop facility is the loop macro.The expanded form consists of three basic parts in the tag body:Loop prologue contains forma that are executed before execution begins.
Loop body contains those forms that are executed during iteration.
Stepping is the process of assigning the variable the next item in the series of items.
Loop epilogue contains forms that are executed after iteration terminates.Parsing loop clausesSyntactic part of the loop construct are called clauses.The scope of each clause is determined by the top level parsing of that clause’s keyword.Example for a loop with six clauses:(loop for I from 1 to (compute-to-value)    while (not (unacceptable i))    collect (square i)    do (format t “Working on ~D now” i)    when (evenp i)      do (format t “ ~D is a non-odd number” i)finally (format t “About to exit!”))
Order of executionClauses are executed in the loop body in the order they appear in the sourceExecution is repeated until a clause terminates a loop or until the CL return, go or throw form is encountered.All variables are initialized first regardless of where the establishing clauses appear in the sourceThe code for any initially clauses is collected into one progn in the order in which the clauses appear in the source.The code for any finally clauses is collected into one progn in the order in which the clauses appear in the source.
A with clause introduces variable binding and an optional initial value.Iteration control clauses implicitly perform the following actions:Initializing variables
Stepping variables, generally between each execution of the loop body.
Performing termination tests, generally just before the execution of the loop body.Kinds of loopsVariable initialization and stepping:The for and as constructs provide iteration control clauses that establish a variable to be initialized.
The with construct is similar to a single let construct.
The repeat construct causes the iteration to terminate after a specified number of times.Value accumulation:The collect construct takes one form in its clause and adds the value of that form to the end of a list of values.
Append construct takes one form in its clause and appends the value of that form to the end of a list of values
The sum construct takes one form in its clause that must evaluate to a number and adds that number into a running total.
The count construct takes one form in its clause and counts the number of times that form evaluates to a non-nil value.
The minimize construct takes one form In clause and determines the minimum value obtained by evaluating the form.
The maximizeconstruct takes one form In clause and determines the maximum value obtained by evaluating the form.Termination conditionsLoop-finish lisp macro terminates iteration and returns any accumulated result.For and as constructs provides termination test that is determined by the iteration control clause.The repeat number causes termination after a specified number of iterations.While construct takes one form, a condition,  and terminates the iteration if the condition evaluates to a nil.The until construct is the inverse of while. It terminates.
The always construct takes one form and terminates the loop if the form ever evaluates to nil.The never construct takes one form and terminates the loop if the form ever evaluates to non-nillThe thereis construct takes one form and terminates the loop if the form ever evaluates to a non-nill.Unconditional execution:The do construct simply evaluates all forms in its clause.The return construct takes one form and returns its value.
Conditional execution:If construct one form as a predicate and a clause that is executed when the predicate is true.The when construct is a synonym for fi.The else construct provides an optional component of if, when and unless clauses that is executed when the prediction is false.The end construct provides an optional component to mark the end of a conditional clause.
Miscellaneous operationsThe named construct assigns a name to a loop construct.The initially construct causes its forms to be evaluated in the loop prologue, which proceeds all loop code except for initial settings specified by the constructs with, for, or as.The finally construct causes its forms to be evaluated in the loop epilogue after normal iteration terminates.
Loop syntaxA loop consists of following type of clauses:Initial-final ::=initially|finallyVariables ::=with|initial-final|for-as|repeatMain ::=unconditional|accumulation|conditional|termination|initial-finalLoop ::=(loop [named name] {variables}* {main}* )
(loop {tag|expr}* )Where expr is any CL expression that can be evaluated , and tag  is any symbol not identifiable as a loop keyword.(loop do {tag|expr}*)A loop prologue consists of any automatic variable initializations prescribed by the variable clauses, along with any initially clauses in the order they appear in the source.
Examples for loops:;;; To print some numbers(loop as i from 1 to 4         do (print i))1     2    3    4NIL;;; To print every third number(loop for i from 10 downto 1 by 3             do (print i))10      7      4      1 NIL
;;; step incrementally from the default starting value(loop as i below 5              do (print i))0    1    2    3    4   NIL
;;; to print every other item in a list.(loop for item in ‘(1 2 3 4 5) bt #’ cddr               do (print item))1   3   5 NIL;;; collect successive tails of a list(loop for sublist on ‘(a b c d)          collect sublist)((A B C D)  (B C D) (C D) (D));;; print a list by using destructing with loop keyword ON.(loop for (item) on ‘(1 2 3)              do (print item))1     2    3  NIL;;; print items in a list without using destructing(loop for item in ‘(1 2 3)        do (print item))1    2    3 NIL
End-test controlThe loop keywords always, never, thereis, until, and while designate constructs that use a single test condition to determine when loop loop iteration should terminate.while expr while construct allows iteration to continue until the specified expression expr evaluates to nil.until expr until construct is equivalent to while, if the value of the specified expression is non-nil, iteration terminates.always expralways takes one form and terminates the loop if the form ever evaluates to nil.

More Related Content

PDF
Java conditional statements
PPTX
Operators loops conditional and statements
PPTX
Loops in java script
PPTX
Loops Basics
DOC
Jumping statements
PPTX
Loops in c language
PPTX
Program control statements in c#
PPTX
C language (Part 2)
Java conditional statements
Operators loops conditional and statements
Loops in java script
Loops Basics
Jumping statements
Loops in c language
Program control statements in c#
C language (Part 2)

What's hot (18)

PPTX
Control flow statements in java
PPTX
Types of loops in c language
PPTX
C# Loops
PPTX
While , For , Do-While Loop
PPTX
C programming language tutorial
PPT
Decision making and looping
PPTX
Loops in C
ODP
Template classes and ROS messages
PPTX
Looping (Computer programming and utilization)
PPTX
What is to loop in c++
PPTX
Do...while loop structure
PDF
Algorithm and Programming (Branching Structure)
PDF
Unit II chapter 4 Loops in C
PDF
Algorithm and Programming (Looping Structure)
PPTX
Ch6 Loops
Control flow statements in java
Types of loops in c language
C# Loops
While , For , Do-While Loop
C programming language tutorial
Decision making and looping
Loops in C
Template classes and ROS messages
Looping (Computer programming and utilization)
What is to loop in c++
Do...while loop structure
Algorithm and Programming (Branching Structure)
Unit II chapter 4 Loops in C
Algorithm and Programming (Looping Structure)
Ch6 Loops
Ad

Viewers also liked (20)

PPTX
MS SQL SERVER: Microsoft sequence clustering and association rules
ODP
Miedo Jajjjajajja
PPTX
RapidMiner: Nested Subprocesses
PPTX
R Datatypes
PPT
Excel Datamining Addin Intermediate
PPTX
Control Statements in Matlab
PDF
Huidige status van de testtaal TTCN-3
ODP
Oratoria E RetóRica Latinas
PDF
Bind How To
PPTX
LISP: Scope and extent in lisp
PPTX
Data Applied:Outliers
PPTX
PPTX
C,C++ In Matlab
PPTX
LISP: Errors In Lisp
PPTX
MED dra Coding -MSSO
PPTX
SPSS: File Managment
PPTX
R Statistics
PPTX
Quick Look At Clustering
PPT
HistoriografíA Latina LatíN Ii
MS SQL SERVER: Microsoft sequence clustering and association rules
Miedo Jajjjajajja
RapidMiner: Nested Subprocesses
R Datatypes
Excel Datamining Addin Intermediate
Control Statements in Matlab
Huidige status van de testtaal TTCN-3
Oratoria E RetóRica Latinas
Bind How To
LISP: Scope and extent in lisp
Data Applied:Outliers
C,C++ In Matlab
LISP: Errors In Lisp
MED dra Coding -MSSO
SPSS: File Managment
R Statistics
Quick Look At Clustering
HistoriografíA Latina LatíN Ii
Ad

Similar to LISP:Loops In Lisp (20)

PPT
Mesics lecture 7 iteration and repetitive executions
PPT
Chapter06.PPT
PPT
Pemrograman komputer 6 (repetisi)
PPT
PPTX
Loops c++
DOC
Slide07 repetitions
PPTX
Decision Making and Looping
PDF
final pl paper
PPT
C++ CH3-P2 using c++ in all other parts.ppt
PPSX
C lecture 3 control statements slideshare
PPT
Lecture-13.ppt
PDF
Loops in C Programming | for Loop | do-while Loop | while Loop | Nested Loop
PDF
Repetition, Basic loop structures, Loop programming techniques
PPT
8 statement level
PDF
07 control+structures
PPT
Iteration
PDF
4-Loops computer programming in c btech.pdf
PDF
[ITP - Lecture 11] Loops in C/C++
DOCX
loops and iteration.docx
PPTX
CSE-1203-Lecture-07-Loops-Part-II. c pptx
Mesics lecture 7 iteration and repetitive executions
Chapter06.PPT
Pemrograman komputer 6 (repetisi)
Loops c++
Slide07 repetitions
Decision Making and Looping
final pl paper
C++ CH3-P2 using c++ in all other parts.ppt
C lecture 3 control statements slideshare
Lecture-13.ppt
Loops in C Programming | for Loop | do-while Loop | while Loop | Nested Loop
Repetition, Basic loop structures, Loop programming techniques
8 statement level
07 control+structures
Iteration
4-Loops computer programming in c btech.pdf
[ITP - Lecture 11] Loops in C/C++
loops and iteration.docx
CSE-1203-Lecture-07-Loops-Part-II. c pptx

More from DataminingTools Inc (20)

PPTX
Terminology Machine Learning
PPTX
Techniques Machine Learning
PPTX
Machine learning Introduction
PPTX
Areas of machine leanring
PPTX
AI: Planning and AI
PPTX
AI: Logic in AI 2
PPTX
AI: Logic in AI
PPTX
AI: Learning in AI 2
PPTX
AI: Learning in AI
PPTX
AI: Introduction to artificial intelligence
PPTX
AI: Belief Networks
PPTX
AI: AI & Searching
PPTX
AI: AI & Problem Solving
PPTX
Data Mining: Text and web mining
PPTX
Data Mining: Outlier analysis
PPTX
Data Mining: Mining stream time series and sequence data
PPTX
Data Mining: Mining ,associations, and correlations
PPTX
Data Mining: Graph mining and social network analysis
PPTX
Data warehouse and olap technology
PPTX
Data Mining: Data processing
Terminology Machine Learning
Techniques Machine Learning
Machine learning Introduction
Areas of machine leanring
AI: Planning and AI
AI: Logic in AI 2
AI: Logic in AI
AI: Learning in AI 2
AI: Learning in AI
AI: Introduction to artificial intelligence
AI: Belief Networks
AI: AI & Searching
AI: AI & Problem Solving
Data Mining: Text and web mining
Data Mining: Outlier analysis
Data Mining: Mining stream time series and sequence data
Data Mining: Mining ,associations, and correlations
Data Mining: Graph mining and social network analysis
Data warehouse and olap technology
Data Mining: Data processing

Recently uploaded (20)

PDF
Machine learning based COVID-19 study performance prediction
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
cuic standard and advanced reporting.pdf
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
Electronic commerce courselecture one. Pdf
PPTX
Programs and apps: productivity, graphics, security and other tools
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PPTX
Big Data Technologies - Introduction.pptx
PDF
Approach and Philosophy of On baking technology
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
Empathic Computing: Creating Shared Understanding
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Machine learning based COVID-19 study performance prediction
Advanced methodologies resolving dimensionality complications for autism neur...
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Understanding_Digital_Forensics_Presentation.pptx
cuic standard and advanced reporting.pdf
Building Integrated photovoltaic BIPV_UPV.pdf
Electronic commerce courselecture one. Pdf
Programs and apps: productivity, graphics, security and other tools
Chapter 3 Spatial Domain Image Processing.pdf
Dropbox Q2 2025 Financial Results & Investor Presentation
Per capita expenditure prediction using model stacking based on satellite ima...
20250228 LYD VKU AI Blended-Learning.pptx
“AI and Expert System Decision Support & Business Intelligence Systems”
NewMind AI Weekly Chronicles - August'25 Week I
Big Data Technologies - Introduction.pptx
Approach and Philosophy of On baking technology
Reach Out and Touch Someone: Haptics and Empathic Computing
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Empathic Computing: Creating Shared Understanding
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...

LISP:Loops In Lisp

  • 2. overviewParsing loop clausesLoop syntaxLoop constructsIteration controlConditional and unconditional executionData types
  • 3. A loop is a series of expressions that are executed one or more times, a process known as iteration.The driving element of the loop facility is the loop macro.The expanded form consists of three basic parts in the tag body:Loop prologue contains forma that are executed before execution begins.
  • 4. Loop body contains those forms that are executed during iteration.
  • 5. Stepping is the process of assigning the variable the next item in the series of items.
  • 6. Loop epilogue contains forms that are executed after iteration terminates.Parsing loop clausesSyntactic part of the loop construct are called clauses.The scope of each clause is determined by the top level parsing of that clause’s keyword.Example for a loop with six clauses:(loop for I from 1 to (compute-to-value) while (not (unacceptable i)) collect (square i) do (format t “Working on ~D now” i) when (evenp i) do (format t “ ~D is a non-odd number” i)finally (format t “About to exit!”))
  • 7. Order of executionClauses are executed in the loop body in the order they appear in the sourceExecution is repeated until a clause terminates a loop or until the CL return, go or throw form is encountered.All variables are initialized first regardless of where the establishing clauses appear in the sourceThe code for any initially clauses is collected into one progn in the order in which the clauses appear in the source.The code for any finally clauses is collected into one progn in the order in which the clauses appear in the source.
  • 8. A with clause introduces variable binding and an optional initial value.Iteration control clauses implicitly perform the following actions:Initializing variables
  • 9. Stepping variables, generally between each execution of the loop body.
  • 10. Performing termination tests, generally just before the execution of the loop body.Kinds of loopsVariable initialization and stepping:The for and as constructs provide iteration control clauses that establish a variable to be initialized.
  • 11. The with construct is similar to a single let construct.
  • 12. The repeat construct causes the iteration to terminate after a specified number of times.Value accumulation:The collect construct takes one form in its clause and adds the value of that form to the end of a list of values.
  • 13. Append construct takes one form in its clause and appends the value of that form to the end of a list of values
  • 14. The sum construct takes one form in its clause that must evaluate to a number and adds that number into a running total.
  • 15. The count construct takes one form in its clause and counts the number of times that form evaluates to a non-nil value.
  • 16. The minimize construct takes one form In clause and determines the minimum value obtained by evaluating the form.
  • 17. The maximizeconstruct takes one form In clause and determines the maximum value obtained by evaluating the form.Termination conditionsLoop-finish lisp macro terminates iteration and returns any accumulated result.For and as constructs provides termination test that is determined by the iteration control clause.The repeat number causes termination after a specified number of iterations.While construct takes one form, a condition, and terminates the iteration if the condition evaluates to a nil.The until construct is the inverse of while. It terminates.
  • 18. The always construct takes one form and terminates the loop if the form ever evaluates to nil.The never construct takes one form and terminates the loop if the form ever evaluates to non-nillThe thereis construct takes one form and terminates the loop if the form ever evaluates to a non-nill.Unconditional execution:The do construct simply evaluates all forms in its clause.The return construct takes one form and returns its value.
  • 19. Conditional execution:If construct one form as a predicate and a clause that is executed when the predicate is true.The when construct is a synonym for fi.The else construct provides an optional component of if, when and unless clauses that is executed when the prediction is false.The end construct provides an optional component to mark the end of a conditional clause.
  • 20. Miscellaneous operationsThe named construct assigns a name to a loop construct.The initially construct causes its forms to be evaluated in the loop prologue, which proceeds all loop code except for initial settings specified by the constructs with, for, or as.The finally construct causes its forms to be evaluated in the loop epilogue after normal iteration terminates.
  • 21. Loop syntaxA loop consists of following type of clauses:Initial-final ::=initially|finallyVariables ::=with|initial-final|for-as|repeatMain ::=unconditional|accumulation|conditional|termination|initial-finalLoop ::=(loop [named name] {variables}* {main}* )
  • 22. (loop {tag|expr}* )Where expr is any CL expression that can be evaluated , and tag is any symbol not identifiable as a loop keyword.(loop do {tag|expr}*)A loop prologue consists of any automatic variable initializations prescribed by the variable clauses, along with any initially clauses in the order they appear in the source.
  • 23. Examples for loops:;;; To print some numbers(loop as i from 1 to 4 do (print i))1 2 3 4NIL;;; To print every third number(loop for i from 10 downto 1 by 3 do (print i))10 7 4 1 NIL
  • 24. ;;; step incrementally from the default starting value(loop as i below 5 do (print i))0 1 2 3 4 NIL
  • 25. ;;; to print every other item in a list.(loop for item in ‘(1 2 3 4 5) bt #’ cddr do (print item))1 3 5 NIL;;; collect successive tails of a list(loop for sublist on ‘(a b c d) collect sublist)((A B C D) (B C D) (C D) (D));;; print a list by using destructing with loop keyword ON.(loop for (item) on ‘(1 2 3) do (print item))1 2 3 NIL;;; print items in a list without using destructing(loop for item in ‘(1 2 3) do (print item))1 2 3 NIL
  • 26. End-test controlThe loop keywords always, never, thereis, until, and while designate constructs that use a single test condition to determine when loop loop iteration should terminate.while expr while construct allows iteration to continue until the specified expression expr evaluates to nil.until expr until construct is equivalent to while, if the value of the specified expression is non-nil, iteration terminates.always expralways takes one form and terminates the loop if the form ever evaluates to nil.
  • 27. Never expr never form takes one form and terminates the loop if the form ever evaluates to non-nill.thereis expr thereis construct takes one form and terminates the loop if the form ever evaluates to a non-nil.While and until constructs causes termination, control is passed to the loop epilogue, where any finally clauses will be executed.
  • 28. Ex:(loop for i from 0 to 10 always ( < i 11)) T(loop for i from 0 to 10 never (> i 11)) T(loop for i from 0 to 10 always ( < i 9) finally (print “you won’t see this”))NIL(loop never t finally (print “you won’t see this”))NIL
  • 29. (loop thereis “Here is my value” finally (print “you won’t see this”)) “here is my value”(loop for i from 0 to 10 thereis (when (> i 10) i) ) 11(loop for i from 1 to 10 thereis (> i 11) finally (print i)) 11 NIL
  • 30. Unconditional executionThe loop construct do takes one or more expressions and simply evaluates them in order.do {expr} do construct simply evaluates the specified expressions wherever they occur in the expanded form of loop.Ex: (loop for ifrom 1 to 5 do (print i))1 2 3 4 5NIL.
  • 31. return expr return construct terminates the loop and returns the value of the specified expression as the value of the loop .Ex: (loop for item in ‘( 1 2 3 a 4 5) when (not (numberp item)) return (cerror “enter new value” “non-numeric value: ~s” item)) Error: non-numeric value: A
  • 32. Data typestype-spec argument that allows you to specify certain data types for loop variables.The type-spec argument syntax:type-spec ::=of-type d-type-specd-type-spec ::=type-specifier|(d-type-spec . D-type-spec)The type-spec argument is used for destructing
  • 33. Visit more self help tutorialsPick a tutorial of your choice and browse through it at your own pace.The tutorials section is free, self-guiding and will not involve any additional support.Visit us at www.dataminingtools.net