Главная страница
Навигация по странице:

  • Лабораторная работа 5 Лямбда-выражения и функции пользователя. Рекурсии

  • Лабораторная работа 5 LisP. Лабораторная работа 5. Лабораторная работа 5 Лямбдавыражения и функции пользователя. Рекурсии


    Скачать 66.5 Kb.
    НазваниеЛабораторная работа 5 Лямбдавыражения и функции пользователя. Рекурсии
    АнкорЛабораторная работа 5 LisP
    Дата04.02.2022
    Размер66.5 Kb.
    Формат файлаdoc
    Имя файлаЛабораторная работа 5.doc
    ТипЛабораторная работа
    #351589

    Лабораторная работа 5

    Лямбда-выражения и функции пользователя. Рекурсии

    Вариант1

    1. Ответьте письменно на вопросы:

    1) Что возвращает функция: ((lambda (x y) (cons x (cons y nil))) ‘a ‘b)?
    2) Чему равно значение лямбда-вызова

    ((lambda (a &optional (b 3) &rest x &key c (d a)) (list a b c d x)) 1 6 :c 7)
    2. Напишите функцию пользователя, сравнивающую остатки от деления N чисел х1, x2, …на число k и возвращающая число xi, дающее больший остаток.

    3. Напишите рекурсивную функцию для вычисления n-й степени числа а

    4. Напишите рекурсивную функцию, проверяющую, что все элементы списка S различны

    5. Напишите рекурсивную функцию, которая проверяет, можно ли получить список S из списка P перестановкой его элементов.
    ……………………………………………………………………………………………………………..
    Лабораторная работа 5

    Лямбда-выражения и функции пользователя. Рекурсии
    Вариант 2

    1. Ответьте письменно на вопросы:

    1) Что возвращает функция: ((lambda (x &rest y) (cons x (cdr y)) ) 1 2 3 4 5 )?
    2) Задана функция (defan f (a &key (b a) &optional c) (+ a (* b 3) (* c 2)) ).
    Что получится в результате вызовов функции f:
    а) ( f 10 1 ) б) (f 2 :b 8 -1 ) в) ( f 1 2 3)?
    2. Напишите функцию, вычисляющую модуль вектора v=(х1 x2 … xn) N-мерного пространства. Координаты вектора и размерность пространства оформите как аргументы функции.

    3. Напишите рекурсивную функцию для вычисления суммы первых n нечётных натуральных чисел.

    4. Напишите рекурсивную функцию, увеличивающую каждый элемент списка на 5.

    5. Напишите рекурсивную функцию, находящую поэлементную сумму двух списков
    ……………………………………………………………………………………………………………..
    Лабораторная работа 5

    Лямбда-выражения и функции пользователя. Рекурсии
    Вариант 3

    1. Ответьте письменно на вопросы:

    1) Чему равно значение лямбда-вызова ((lambda (x) (eval (cons x ‘(1 2 3)))) ‘min)?

    2) ( defun f ( (x 0) &rest y) ( cons x (cdr y)) )
    Что вернет функция f в результате вызовов:

    (f 1 2 3 4)

    ( f 1 )
    (f max 1 2)?

    2. Напишите функцию пользователя f(a, ,n), генерирующую n нормально распределенных случайных чисел с математическим ожиданием а и средним квадратическим отклонением .По умолчанию а=0, =1, n=1.

    3. Напишите рекурсивную функцию для нахождения n-го элемента арифметической прогрессии с первым членом a0, и разностью d.

    4. Напишите рекурсивную функцию, добавляющую элемент х в конец списка s.

    5. Напишите рекурсивную функцию, объединяющую два списка в один.

    ……………………………………………………………………………………………………………..

    Лабораторная работа 5

    Лямбда-выражения и функции пользователя. Рекурсии
    Вариант 4

    Ответьте письменно на вопросы:

    1) Что возвращает функция: ((lambda (x) (list ‘a x)) ((lambda (y) (list y)) ‘b)) ?

    2) Задана функция ( defun f(x &key (y x) &rest s ) ( max x y (eval (cons ‘+ s) )) )

    Что получится в результате вызовов
    ( f 10 1 2 3 ) (f 2 :y 8 -1 ) (f 2 :y 0 1 1 1 1 1 1 1)?

    2. Напишите функцию пользователя, которая для n чисел х1, x2, …xn находит разность между наибольшим и наименьшим.

    3. Напишите рекурсивную функцию для вычисления функции

    4. Напишите рекурсивную функцию, которая список (a b c …) превращает в список ((а) (b) (c)…).

    5. Напишите рекурсивную функцию, которая из многоуровневого списка получает одноуровневый, вытаскивая все атомы на первый уровень
    ………………………………………………………………………………………………………….

    Лабораторная работа 5

    Лямбда-выражения и функции пользователя. Рекурсии

    Вариант 5

    1. Ответьте письменно на вопросы:

    1)Чему равно значение лямбда-вызова

    ((lambda (a &optional (b 3) &rest x &key c (d a)) (list a b c d x)) 1) ?

    Что возвращает функция: ((lambda (x &rest y) (list x (cdr y))) ‘ 1 2 3 4 )?
    2. Напишите функцию, которая для n чисел х1, x2, …xn,определяет, сколько из них меньше числа y.

    3. Напишите рекурсивную функцию для вычисления n-го элемента геометрической прогрессии с первым членом b0 и знаменателем q.

    4. Напишите рекурсивную функцию, дублирующую каждый элемент списка (Т.е. список с1=(в 2 п) превращается в с2=( в в 2 2 п п ) ).

    5. Напишие рекурсивную функцию, переворачивающую список задам наперед

    ……………………………………………………………………………………………………………..
    Лабораторная работа 5

    Лямбда-выражения и функции пользователя. Рекурсии
    Вариант 6

    Ответьте письменно на вопросы:

    1) Задана функция (defun f (a &optional (b a) & rest (s (0)) )

    (- (* a b) (eval (cons ‘+ s )) ).
    Что получится в результате вызова этой функции с параметрами:
    а) (f 3) б) (f 10 5 1 1 2) в) (f 10 10 2 2 2 2 2 2)?

    2) Что возвращает функция: ((lambda (x) (list x (+ x 1) (* 2 x )) ) 3)?
    2. Напишите функцию f( x, y, m) , возводящую число х в степень у по модулю m (m по умолчанию должно быть равно 1).

    3. Напишите рекурсивную функцию для вычисления произведения n первых членов прогрессии 1, 4, 7, 10…

    4. Напишите рекурсивную функцию, переводящую одноуровневый список вида (а б .. ю я) в список (а(б(…(ю(я))…)).

    Лабораторная работа 5

    Лямбда-выражения и функции пользователя. Рекурсии

    Вариант 7

    Ответьте письменно на вопросы:

    1) Что возвращает функция: ((lambda (x) (list ‘a x)) ((lambda (y) (list y)) ‘b))?

    2) (defun f(&key (x 2) y) (/ (+ x y) (* x y))))

    Что получится в результате вызова функции
    (f :y 2)
    (f 1 )
    (f :x 4 :y 2)?

    2. Напишите функцию, которая для чисел х1, x2… xn определяет, каких больше – чётных или нечётных.

    3. Напишите рекурсивную функцию f(c, n) , которая вычисляет n-ю частичную сумму ряда .

    4. Напишите рекурсивную функцию, заменяющую все четные элементы числового спика нулем

    5. Напишите рекурсивную функцию, которая из числового списка S строит новый список из разностей соседних элементов.

    ……………………………………………………………………………………………………………..
    Лабораторная работа 5

    Лямбда-выражения и функции пользователя. Рекурсии
    Вариант 8

    1. Ответьте письменно на вопросы:

    1) Что возвращает функция: ((lambda ( х &rest y) (eval (cons x y)) ) gcd 4 6 16 )

    2) Задана функция: (defun f (x &optional (y x) &rest (z ‘(2)) ) ( + x y (car z)) )
    Что получится в результате вызовов функции
    а) (f 3 ) б) (f 1 2 3) в) (f 0 1 3 4 2)?

    2. Напишите функцию, которая находит позицию наибольшего элемента в списке.

    3. Напишите рекурсивную функцию, вычисляющую цифровой корень числа х.

    4. Напишите рекурсивную функцию, которая дублирует каждый элемент списка:
    ( а б в г…) превращается в (а а б б в в г г …)

    5. Напишите рекурсивную функцию, которая находит пересечение двух списков: т.е. строит список из элементов, встречающихся в обоих.

    ……………………………………………………………………………………………………………..
    Лабораторная работа 5

    Лямбда-выражения и функции пользователя. Рекурсии
    Вариант 9

    1. Ответьте письменно на вопросы:

    1) Что возвращает функция: (caaar ((lambda (x) (list x)) ((lambda (x) (list x)) (list nil))))?

    2) Задана функция (defun f ( ( x 10) &rest y ) (eval (cons ‘- (cons x y))) )

    Что получится в результате вызовов функции

    (defun f ( ( x 10) &rest y ) (eval (cons ‘- (cons x y))) )

    а) (f ) б) (f 2 3 4) в) (f 100 1 2 3 4 5)?

    2. Напишите функцию, которая вычисляет скалярное произведение двух векторов n-мерного пространства.

    3. Напишите рекурсивную функцию, которая между каждой парой элементов списка вставляет число 0.

    4. Напишите рекурсивную функцию, которая возводит в квадрат каждый элемент списка

    5. Напишите рекурсивную функцию, которая для двух списков S и P находит все элементы, встречающиеся в S но отсутствующие в Р

    Лабораторная работа 5

    Лямбда-выражения и функции пользователя. Рекурсии

    Вариант 10

    1. Ответьте письменно на вопросы:

    1) Что возвращает функция: ((lambda (x) (eval (cons x ‘(1 2 3)))) ‘max)?

    2) (defun f( x &optional (y 0) (z y) ) ( + (* х х) (* y y ) z ) )

    что получится в результате вызовов функции:
    a) (f 2)
    b) ( f 5 1 1)
    c) (f 1 2 3)?

    2. Напишите функцию, проверяющую, является ли число Х простым.

    3. Напишите рекурсивную функцию для вычисления суммы n первых членов прогрессии 1, 2, 4, 8, 16…

    4. Напишите рекурсивную функцию для вычисления суммы двух векторов n-мерного пространства. Векторы и их сумму представить списками одинаковой длины n.

    5. Напишите рекурсивную функцию. которая для двух списков одинаковой длины производит попарное сравнение элементов. Результаты выводятся в новый список.

    ……………………………………………………………………………………………………………..
    Вариант11

    1. Ответьте письменно на вопросы:

    1) Что возвращает функция: ((lambda (x y) (cons x (cons y nil))) ‘a ‘b)?
    2) Чему равно значение лямбда-вызова

    ((lambda (a &optional (b 3) &rest x &key c (d a)) (list a b c d x)) 1 6 :c 7)

    2.Напишите функцию, которая находит все делители числа х и строит из них список

    3. Напишите рекурсивную функцию, которая строит список вида (хn…x2 x). х и n – аргументы функции.

    4. Напишите рекурсивную функцию, которая удаляет из списка элементы, равный х.х вводит пользователь

    5. Напишите рекурсивную функцию, которая проверяет, является ли список S частью списка P

    ……………………………………………………………………………………………………………..
    Вариант 12

    Ответьте письменно на вопросы:

    1) Что возвращает функция: (caaar ((lambda (x) (list x)) ((lambda (x) (list x)) (list nil))))?

    2) Задана функция (defun f ( ( x 10) &rest y ) (eval (cons ‘- (cons x y))) )

    Что получится в результате вызовов функции:

    (defun f ( ( x 10) &rest y ) (eval (cons ‘- (cons x y))) )

    а) (f ) б) (f 2 3 4) в) (f 100 1 2 3 4 5)?

    2. Напишите функцию которая создаёт список из к случайных чисел (rand n), распределённых в диапазоне от а до b (по умолчанию a = 0, b=100).

    3 Напишите рекурсивную функцию, которая на основе двух списков х1 и х2 строит список из произведений их элементов

    4. Напишите рекурсивную функцию, которая возводит в квадрат каждый элемент списка

    5. Напишите рекурсивную функцию, находящую поэлементное произведение двух списков


    написать администратору сайта