Case Construct in LISP
In this article, we will discuss the case construct in LISP. This is used to check multiple test conditions at a time, unlike cond, if and when it allows multiple conditions.
Syntax:
(case (key_value) ((key1) (statement 1 .............. statement n) ) ((key2) (statement 1 .............. statement n) ) ................ ((keyn) (statement 1 .............. statement n) )
Here,
- key_value is the numeric value taken an input
- keys are the different conditions to test particular condition specified in keys
Example 1: LISP Program to get the particular number when the number is given.
Lisp
;define value to 2 (setq val1 2 ) ;define 5 cases from 1 to 5 (case val1 ( 1 ( format t "you selected number 1" )) ( 2 ( format t "you selected number 2" )) ( 3 ( format t "you selected number 3" )) ( 4 ( format t "you selected number 4" )) ( 5 ( format t "you selected number 5" )) ) |
Output:
you selected number 2
Example 2: LISP Program to perform an arithmetic operation when a particular key is chosen.
Lisp
;define value1 to 10 (setq val1 10 ) ;define value2 to 20 (setq val2 20 ) ;set input to 1 (setq input 1 ) ;define 4 cases to perform each arithmetic operation (case input ;condition to perform addition ( 1 (print ( + val1 val2))) ;condition to perform subtraction ( 2 (print ( - val1 val2))) ;condition to perform multiplication ( 3 (print ( * val1 val2))) ;condition to perform division ( 4 (print ( / val1 val2))) ) |
Output:
30
Now if we set input to 3:
Lisp
;define value1 to 10 (setq val1 10 ) ;define value2 to 20 (setq val2 20 ) ;set input to 3 (setq input 3 ) ;define 4 cases to perform each arithmetic operation (case input ;condition to perform addition ( 1 (print ( + val1 val2))) ;condition to perform subtraction ( 2 (print ( - val1 val2))) ;condition to perform multiplication ( 3 (print ( * val1 val2))) ;condition to perform division ( 4 (print ( / val1 val2))) ) |
Output:
200
Please Login to comment...