SlideShare a Scribd company logo
 Loops in Lisp
overview Parsing loop clauses Loop syntax Loop constructs Iteration control Conditional and unconditional execution Data 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: ,[object Object]
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.,[object Object]
Order of execution Clauses are executed in the loop body in the order they appear in the source Execution 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 source The 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: ,[object Object]
Stepping variables, generally between each execution of the loop body.
Performing termination tests, generally just before the execution of the loop body.,[object Object]
The with construct is similar to a single let construct.
The repeat construct causes the iteration to terminate after a specified number of times.,[object Object]
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.,[object Object]
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-nill The 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 operations The 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 syntax A loop consists of following type of clauses: Initial-final ::=initially|finally Variables ::=with|initial-final|for-as|repeat Main ::=unconditional|accumulation |conditional|termination|initial-final Loop ::=(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     4 NIL ;;; 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) ,[object Object],[object Object]
End-test control The 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

What's hot

Control flow statements in java
Control flow statements in javaControl flow statements in java
Control flow statements in java
yugandhar vadlamudi
 
Loops
LoopsLoops
Types of loops in c language
Types of loops in c languageTypes of loops in c language
Types of loops in c language
sneha2494
 
C# Loops
C# LoopsC# Loops
C# Loops
Hock Leng PUAH
 
While , For , Do-While Loop
While , For , Do-While LoopWhile , For , Do-While Loop
While , For , Do-While Loop
Abhishek Choksi
 
C programming language tutorial
C programming language tutorialC programming language tutorial
C programming language tutorial
SURBHI SAROHA
 
Decision making and looping
Decision making and loopingDecision making and looping
Decision making and looping
Hossain Md Shakhawat
 
Loops in C
Loops in CLoops in C
Loops in C
Kamal Acharya
 
Looping (Computer programming and utilization)
Looping (Computer programming and utilization)Looping (Computer programming and utilization)
Looping (Computer programming and utilization)
Digvijaysinh Gohil
 
What is to loop in c++
What is to loop in c++What is to loop in c++
What is to loop in c++
03446940736
 
Do...while loop structure
Do...while loop structureDo...while loop structure
Do...while loop structureJd Mercado
 
Algorithm and Programming (Branching Structure)
Algorithm and Programming (Branching Structure)Algorithm and Programming (Branching Structure)
Algorithm and Programming (Branching Structure)
Adam Mukharil Bachtiar
 
C# loops
C# loopsC# loops
Unit II chapter 4 Loops in C
Unit II chapter 4 Loops in CUnit II chapter 4 Loops in C
Unit II chapter 4 Loops in C
Sowmya Jyothi
 
Algorithm and Programming (Looping Structure)
Algorithm and Programming (Looping Structure)Algorithm and Programming (Looping Structure)
Algorithm and Programming (Looping Structure)
Adam Mukharil Bachtiar
 
Ch6 Loops
Ch6 LoopsCh6 Loops
Ch6 Loops
SzeChingChen
 

What's hot (18)

Control flow statements in java
Control flow statements in javaControl flow statements in java
Control flow statements in java
 
Loops
LoopsLoops
Loops
 
Types of loops in c language
Types of loops in c languageTypes of loops in c language
Types of loops in c language
 
C# Loops
C# LoopsC# Loops
C# Loops
 
Flow of control ppt
Flow of control pptFlow of control ppt
Flow of control ppt
 
While , For , Do-While Loop
While , For , Do-While LoopWhile , For , Do-While Loop
While , For , Do-While Loop
 
C programming language tutorial
C programming language tutorialC programming language tutorial
C programming language tutorial
 
Decision making and looping
Decision making and loopingDecision making and looping
Decision making and looping
 
Loops in C
Loops in CLoops in C
Loops in C
 
Template classes and ROS messages
Template classes and ROS messagesTemplate classes and ROS messages
Template classes and ROS messages
 
Looping (Computer programming and utilization)
Looping (Computer programming and utilization)Looping (Computer programming and utilization)
Looping (Computer programming and utilization)
 
What is to loop in c++
What is to loop in c++What is to loop in c++
What is to loop in c++
 
Do...while loop structure
Do...while loop structureDo...while loop structure
Do...while loop structure
 
Algorithm and Programming (Branching Structure)
Algorithm and Programming (Branching Structure)Algorithm and Programming (Branching Structure)
Algorithm and Programming (Branching Structure)
 
C# loops
C# loopsC# loops
C# loops
 
Unit II chapter 4 Loops in C
Unit II chapter 4 Loops in CUnit II chapter 4 Loops in C
Unit II chapter 4 Loops in C
 
Algorithm and Programming (Looping Structure)
Algorithm and Programming (Looping Structure)Algorithm and Programming (Looping Structure)
Algorithm and Programming (Looping Structure)
 
Ch6 Loops
Ch6 LoopsCh6 Loops
Ch6 Loops
 

Similar to LISP: Loops In Lisp

Looping statements
Looping statementsLooping statements
Looping statements
Jaya Kumari
 
Programming in Arduino (Part 2)
Programming in Arduino  (Part 2)Programming in Arduino  (Part 2)
Programming in Arduino (Part 2)
Niket Chandrawanshi
 
LISP: Control Structures In Lisp
LISP: Control Structures In LispLISP: Control Structures In Lisp
LISP: Control Structures In Lisp
LISP Content
 
LISP:Control Structures In Lisp
LISP:Control Structures In LispLISP:Control Structures In Lisp
LISP:Control Structures In Lisp
DataminingTools Inc
 
Control structures ii
Control structures ii Control structures ii
Control structures ii
Ahmad Idrees
 
Iteration
IterationIteration
Iteration
Liam Dunphy
 
Learn C# Programming - Decision Making & Loops
Learn C# Programming - Decision Making & LoopsLearn C# Programming - Decision Making & Loops
Learn C# Programming - Decision Making & Loops
Eng Teong Cheah
 
06 Loops
06 Loops06 Loops
06 Loops
maznabili
 
06-Control-Statementskkkkkkkkkkkkkk.pptx
06-Control-Statementskkkkkkkkkkkkkk.pptx06-Control-Statementskkkkkkkkkkkkkk.pptx
06-Control-Statementskkkkkkkkkkkkkk.pptx
kamalsmail1
 
Chapter 12 Computer Science ( ICS 12).pdf
Chapter 12 Computer Science ( ICS 12).pdfChapter 12 Computer Science ( ICS 12).pdf
Chapter 12 Computer Science ( ICS 12).pdf
AamirShahzad527024
 
Loop in C Properties & Applications
Loop in C Properties & ApplicationsLoop in C Properties & Applications
Loop in C Properties & Applications
Emroz Sardar
 
C# language basics (Visual Studio)
C# language basics (Visual Studio) C# language basics (Visual Studio)
C# language basics (Visual Studio)
rnkhan
 
C# language basics (Visual studio)
C# language basics (Visual studio)C# language basics (Visual studio)
C# language basics (Visual studio)
rnkhan
 
Constructs (Programming Methodology)
Constructs (Programming Methodology)Constructs (Programming Methodology)
Constructs (Programming Methodology)
Jyoti Bhardwaj
 
Vb script final pari
Vb script final pariVb script final pari
Vb script final pari
Kamesh Shekhar Prasad
 
Iterative control structures, looping, types of loops, loop working
Iterative control structures, looping, types of loops, loop workingIterative control structures, looping, types of loops, loop working
Iterative control structures, looping, types of loops, loop working
Neeru Mittal
 
Loops c++
Loops c++Loops c++
Loops c++
Shivani Singh
 
Loops in c
Loops in cLoops in c
Loops in c
RekhaBudhwar
 

Similar to LISP: Loops In Lisp (20)

Looping statements
Looping statementsLooping statements
Looping statements
 
Programming in Arduino (Part 2)
Programming in Arduino  (Part 2)Programming in Arduino  (Part 2)
Programming in Arduino (Part 2)
 
LISP: Control Structures In Lisp
LISP: Control Structures In LispLISP: Control Structures In Lisp
LISP: Control Structures In Lisp
 
LISP:Control Structures In Lisp
LISP:Control Structures In LispLISP:Control Structures In Lisp
LISP:Control Structures In Lisp
 
Control structures ii
Control structures ii Control structures ii
Control structures ii
 
Loops
LoopsLoops
Loops
 
Iteration
IterationIteration
Iteration
 
Learn C# Programming - Decision Making & Loops
Learn C# Programming - Decision Making & LoopsLearn C# Programming - Decision Making & Loops
Learn C# Programming - Decision Making & Loops
 
06 Loops
06 Loops06 Loops
06 Loops
 
06-Control-Statementskkkkkkkkkkkkkk.pptx
06-Control-Statementskkkkkkkkkkkkkk.pptx06-Control-Statementskkkkkkkkkkkkkk.pptx
06-Control-Statementskkkkkkkkkkkkkk.pptx
 
Chapter 12 Computer Science ( ICS 12).pdf
Chapter 12 Computer Science ( ICS 12).pdfChapter 12 Computer Science ( ICS 12).pdf
Chapter 12 Computer Science ( ICS 12).pdf
 
Loop in C Properties & Applications
Loop in C Properties & ApplicationsLoop in C Properties & Applications
Loop in C Properties & Applications
 
C# language basics (Visual Studio)
C# language basics (Visual Studio) C# language basics (Visual Studio)
C# language basics (Visual Studio)
 
C# language basics (Visual studio)
C# language basics (Visual studio)C# language basics (Visual studio)
C# language basics (Visual studio)
 
Constructs (Programming Methodology)
Constructs (Programming Methodology)Constructs (Programming Methodology)
Constructs (Programming Methodology)
 
Vb script final pari
Vb script final pariVb script final pari
Vb script final pari
 
Iterative control structures, looping, types of loops, loop working
Iterative control structures, looping, types of loops, loop workingIterative control structures, looping, types of loops, loop working
Iterative control structures, looping, types of loops, loop working
 
Loops c++
Loops c++Loops c++
Loops c++
 
Loops_in_Rv1.2b
Loops_in_Rv1.2bLoops_in_Rv1.2b
Loops_in_Rv1.2b
 
Loops in c
Loops in cLoops in c
Loops in c
 

More from LISP Content

LISP:Declarations In Lisp
LISP:Declarations In LispLISP:Declarations In Lisp
LISP:Declarations In Lisp
LISP Content
 
LISP: Errors In Lisp
LISP: Errors In LispLISP: Errors In Lisp
LISP: Errors In Lisp
LISP Content
 
LISP: Input And Output
LISP: Input And OutputLISP: Input And Output
LISP: Input And Output
LISP Content
 
LISP: Object Sytstem Lisp
LISP: Object Sytstem LispLISP: Object Sytstem Lisp
LISP: Object Sytstem Lisp
LISP Content
 
LISP: Type specifiers in lisp
LISP: Type specifiers in lispLISP: Type specifiers in lisp
LISP: Type specifiers in lisp
LISP Content
 
LISP: Symbols and packages in lisp
LISP: Symbols and packages in lispLISP: Symbols and packages in lisp
LISP: Symbols and packages in lisp
LISP Content
 
LISP: Scope and extent in lisp
LISP: Scope and extent in lispLISP: Scope and extent in lisp
LISP: Scope and extent in lisp
LISP Content
 
LISP: Program structure in lisp
LISP: Program structure in lispLISP: Program structure in lisp
LISP: Program structure in lisp
LISP Content
 
LISP: Predicates in lisp
LISP: Predicates in lispLISP: Predicates in lisp
LISP: Predicates in lisp
LISP Content
 
LISP: Macros in lisp
LISP: Macros in lispLISP: Macros in lisp
LISP: Macros in lisp
LISP Content
 
LISP: Data types in lisp
LISP: Data types in lispLISP: Data types in lisp
LISP: Data types in lisp
LISP Content
 
LISP: Introduction To Lisp
LISP: Introduction To LispLISP: Introduction To Lisp
LISP: Introduction To Lisp
LISP Content
 

More from LISP Content (12)

LISP:Declarations In Lisp
LISP:Declarations In LispLISP:Declarations In Lisp
LISP:Declarations In Lisp
 
LISP: Errors In Lisp
LISP: Errors In LispLISP: Errors In Lisp
LISP: Errors In Lisp
 
LISP: Input And Output
LISP: Input And OutputLISP: Input And Output
LISP: Input And Output
 
LISP: Object Sytstem Lisp
LISP: Object Sytstem LispLISP: Object Sytstem Lisp
LISP: Object Sytstem Lisp
 
LISP: Type specifiers in lisp
LISP: Type specifiers in lispLISP: Type specifiers in lisp
LISP: Type specifiers in lisp
 
LISP: Symbols and packages in lisp
LISP: Symbols and packages in lispLISP: Symbols and packages in lisp
LISP: Symbols and packages in lisp
 
LISP: Scope and extent in lisp
LISP: Scope and extent in lispLISP: Scope and extent in lisp
LISP: Scope and extent in lisp
 
LISP: Program structure in lisp
LISP: Program structure in lispLISP: Program structure in lisp
LISP: Program structure in lisp
 
LISP: Predicates in lisp
LISP: Predicates in lispLISP: Predicates in lisp
LISP: Predicates in lisp
 
LISP: Macros in lisp
LISP: Macros in lispLISP: Macros in lisp
LISP: Macros in lisp
 
LISP: Data types in lisp
LISP: Data types in lispLISP: Data types in lisp
LISP: Data types in lisp
 
LISP: Introduction To Lisp
LISP: Introduction To LispLISP: Introduction To Lisp
LISP: Introduction To Lisp
 

Recently uploaded

UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
DianaGray10
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
Safe Software
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
DianaGray10
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
Frank van Harmelen
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Tobias Schneck
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
Product School
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Inflectra
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
Thijs Feryn
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
Product School
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Thierry Lestable
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Product School
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Product School
 

Recently uploaded (20)

UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
 

LISP: Loops In Lisp

  • 1. Loops in Lisp
  • 2. overview Parsing loop clauses Loop syntax Loop constructs Iteration control Conditional and unconditional execution Data types
  • 3.
  • 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.
  • 7. Order of execution Clauses are executed in the loop body in the order they appear in the source Execution 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 source The 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.
  • 9. Stepping variables, generally between each execution of the loop body.
  • 10.
  • 11. The with construct is similar to a single let construct.
  • 12.
  • 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.
  • 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-nill The 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 operations The 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 syntax A loop consists of following type of clauses: Initial-final ::=initially|finally Variables ::=with|initial-final|for-as|repeat Main ::=unconditional|accumulation |conditional|termination|initial-final Loop ::=(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 4 NIL ;;; 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.
  • 26. End-test control The 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.
  • 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 types type-spec argument that allows you to specify certain data types for loop variables. The type-spec argument syntax: type-spec ::=of-type d-type-spec d-type-spec ::=type-specifier|(d-type-spec . D-type-spec) The type-spec argument is used for destructing
  • 33. Visit more self help tutorials Pick 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