Написать Λ-выражение на языке ЛИСП по индивидуальному заданию. ЛИСП 1. Задание Написать выражение на языке лисп по индивидуальному заданию. Продемонстрировать преобразование для данного выражения в среде интерпретатора LispWorks.
Скачать 120.92 Kb.
|
Задание Написать Λ-выражение на языке ЛИСП по индивидуальному заданию. Продемонстрировать Λ-преобразование для данного Λ-выражения в среде интерпретатора LispWorks. Написать пользовательскую функцию DEFUN на языке ЛИСП для выражения. Интерпретировать написанную функцию в среде интерпретатора LispWorks. Продемонстрировать вызовы пользовательской функции в среде интерпретатора LispWorks. Исходные данные Имеется исходная формула: Рисунок 1. Исходная формула. Опишем Λ-выражение. Код, позволяющий вносить в программу исходные данные: (lambda (b x) (cond ((< x 0) (- b (* x x))) ((= x 0) b) ((> x 0) (+ b (* x x))))) Продемонстрируем Λ-преобразование для данного Λ-выражения в среде интерпретатора LispWorks. Проверим, первое условие x < 0. Для этого передадим значение x которое меньше, чем 0, например -3. В таком случае 2 – (-3 * -3) = 1 – 9 = -7. Значение верно. Проверим второе условие x = 0, для этого передадим числа x = 0, b = 2 чтобы соблюсти условие. В таком случае результат должен быть равен 2. Проверим условие x > 0, для этого передадим числа x = 4, b = 2 чтобы соблюсти условие. В таком случае 2 + 4 * 4 = 2 + 16 = 18. Значение верно. Напишем пользовательскую функцию DEFUN на языке ЛИСП для выражения. Код, позволяющий вносить в программу исходные данные: (defun f (b x) (if (< x 0) (- b (* x x)) (if (= x 0) b (+ b (* x x))))) Продемонстрируем вызовы пользовательской функции в среде интерпретатора LispWorks. Продемонстрируем вызов функции на двух примерах. Вариант (f 0 -5) вернет значение 25. Этот вызов проверяет, что функция правильно обрабатывает случай, когда b = 0 и x < 0. (f -3 4) вернет значение 13. Этот вызов проверяет, что функция правильно обрабатывает отрицательные значения b и положительные значения x. Вывод. Мы описали заданную формулу и писали ее в виде функции prolog, провели тестирование и убедились в работоспособности программы. |