Similar presentations:
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]
programming