LISP
Основные понятия LISP
Основные понятия LISP
Синтаксис LISP
Функция
Арифметические функции
Логические функции
Функции сравнение
Функция IF
Некоторые функции
Задание
85.85K
Категория: ПрограммированиеПрограммирование

1 урок

1. LISP

2. Основные понятия LISP

ОСНОВНЫЕ ПОНЯТИЯ LISP
Атомы
•Числа – целые (5; -35), вещественные(1,45; -57,97), с мантисой и
порядком (3.055E8)
•Символы. Последовательность состоящая из букв, цифр и +, -, *, /, @,
$, %, ^, &, _, \, <, >, ~. Обозначения объектов, действий, операций.
Например:
• + - обозначения операции сложения
• Defun
- обозначение процедуры определения функции
• Var, F1, Val125a
- обозначение функций, аргументов функций, переменных:
• “Hello world”
•T – логическая истина (true),
•Nil – логическая ложь (false)

3. Основные понятия LISP

ОСНОВНЫЕ ПОНЯТИЯ LISP
Списки
() – пустой список (также обозначается nil)
(x1 x2 …. xn), где xi – атом или список
Примеры:
()
(1 2 3)
(+ 1 (* 2 3) 5)
(f1 5 6)
S-выражение
Атом или список

4. Синтаксис LISP

СИНТАКСИС LISP
Стандартная форма записи
Префиксная форма записи
На языке LISP
f(x, y)
f(x, y)
(f x y)
2+3
+23
(+ 2 3)
5*6
*56
(* 5 6)
a>b
>ab
(> a b)
(a+b)*c
*+abc
(* (+ a b) c)

5. Функция

ФУНКЦИЯ
Определение функции
(defun <название функции> <список параметров> <описание функции>)
Пр. f1(x, y)= 2x+y
(defun f1 (x y) (+ (* 2 x) y))
Вызов функции
(<название функции> <список значений параметров>)
Пр. (f1 10 3) - значение 23

6. Арифметические функции

АРИФМЕТИЧЕСКИЕ ФУНКЦИИ
(+) → 0 (+ x)→x (+ x1 … xn) → x1+…+xn , n >= 2
(*) → 1 (* x)→x (* x1 … xn) → x1*…*xn , n >= 2
(-) → не определено (- x)→-x (- x1 … xn) → x1-…-xn , n >= 2
(/) → не определено (/ x)→1/x (/ x1 … xn) → x1/…/xn , n >= 2

7. Логические функции

ЛОГИЧЕСКИЕ ФУНКЦИИ
(and) → t
(and x1 … xn) → x1 and … and xn , n >= 1
(or) → nil
(or x1 … xn) → x1 or … or xn , n >= 1
(not) → не определено, (not x) → not x

8. Функции сравнение

ФУНКЦИИ СРАВНЕНИЕ
Для op ∈ {<, >, =, <=, >=, /=}
(op) → не определена
(op x) → t
(op x1 … xn) → x1 op x2 and x2 op x3 and … and xn-1op xn , n >= 2

9. Функция IF

ФУНКЦИЯ IF
(if x y z), где x – s-выражение, выступающее в роли условия, а y, z s-выражения
(if x y z) = y, если значение x истинно (t)
(if x y z) = z, если значение x ложно (nil)
(if (> 3 2) (+ 5 8) 5) -> (+ 5 8)
(if (> 0 2) (+ 5 8) 5) -> 5

10. Некоторые функции

НЕКОТОРЫЕ ФУНКЦИИ
(Listp x) – проверяет является ли х списком
(Numberp x) – проверяет является ли х числом
(Symbolp x) – проверяет является ли х символом
(Evenp x) – проверяет является ли число х четным
(Oddp x) – проверяет является ли число х нечетным
(Truncate x y) – целая часть от деления
(Rem x y) – остаток от деления
(Round x n) – округление
(Exp x) – ex
(Expt x y) – xy
(Sqrt y) – квадратный корень из х

11. Задание

ЗАДАНИЕ
Описать функцию для подсчета n!
Описать функцию, возвращающая n-ый член ряда Фиббоначи
Описать функцию, считающую xy
Посчитать сумму делителей числа х
Определить является число х – простым
Найти НОД (х, у)
Посчитать сумму цифр числа х
Определить двухместную функция NumberIn (х, у), где х – натуральное число, у -цифра,
которая возвращает t – если число х содержит цифру у и nil – в противном случае
Определить функцию, которая считает произведение всех нечетных чисел из промежутка
[0; n]
English     Русский Правила