Tasks: Learn the Lisp programming language


Download 181.16 Kb.
Pdf ko'rish
Sana05.01.2022
Hajmi181.16 Kb.
#231426
Bog'liq
Primary test



Primary test 

Tasks: 


1.  Learn the Lisp programming language

2.  Explore an example implementation of the multiply function

3.  Implement a division function. 

Lisp is the second-oldest high-level programming language after Fortran. It 

was invented by John McCarthy in 1958. You might have noted that Lisp 

uses prefix notation. 

a * (b + c) / d 

will be written as: 

(/ (* a (+ b c)) d) 

Expression syntax sample below: 

(function_name arg1 arg2 … argn) 

Built-in functions in our examples 

(+ a b), (- a b)    



arithmetic operations 

(> a b), (< a b), (= a b) 



comparison operations 

(and a b), (or a b), (not a) 



logical operations 

(if predicate thenBody elseBody) 



conditional operation 

(define spec body)   



defining custom functions 

 

Define function description 

(define (fname arg1 arg2 arg3 … argn) 

  (body) 



Example 

(define (sign n) 

  (if (> n 0) 1 -1) 

  (sign 2) 



  (sign -5) 

-1 



Exercises 

All examples for any positive integers (a > 0, b > 0). 

Example-1. Function of multiply. 

 (define (* a b) 

  (if (= b 1) a 

    (+ (* a (- b 1)) a) 

  ) 



  (* 3 4) 



  (+ (* 3 (- 4 1)) 3) 

  (+ (* 3 3) 3) 

  (+ (+ (* 3 (- 3 1)) 3) 3) 

  (+ (+ (* 3 2) 3) 3) 

  (+ (+ (+ (* 3 (- 2 1)) 3) 3) 3) 

  (+ (+ (+ (* 3 1) 3) 3) 3) 

  (+ (+ (+ 3 3) 3) 3) 

  (+ (+ 6 3) 3) 

  (+ 9 3) 

  12 


Task-1. Write the function of division (/). 

(define (/ a b) 



   … 



 



Download 181.16 Kb.

Do'stlaringiz bilan baham:




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling