2. Написать функцию, использующую метод Ньютона для вычисления квадратного корня. Метод Ньютона вычисления квадратного корня из числа x начинается с выбора начального приближения y. Это приближение считается достаточно точным, если | x - y2 | <= err, где err – некоторая заранее определенная погрешность. В противном случае более точным приближением будет 1/2 *(y + x/y), которое можно вычислить и точно так же подвергнуть проверке на погрешность. Для получения абсолютной величины числа используйте функция abs: (abs -5) = 5.
Пример:
; вычисления квадратного корня из числа 5
; начальное приближение 1
; уровень допустимой погрешности 0.05
>(newton 5 1 0.05)
2.2380953
3. Написать функции для вычисления N-го числа последовательности Фибоначчи. Каждое следующее число последовательности Фибоначчи вычисляется как сумма двух предыдущих. Два первых числа равны единице.
4. Напишите функцию, которая в качестве параметра получает список и возвращает последний элемент этого списка.
Пример:
>(last1 '(a b c))
C
5.Напишите функцию my-nth, которая получает в качестве параметра список l и число n, и возвращает n-ый элемент списка l. Нумерация элементов списка начинается с нуля.
Примеры:
>(my-nth 2 '(0 1 2 3))
>(my-nth 0 '((a b) c d))
(A B)
6.Напишите функцию fringe, которая получает в качестве параметра список, возможно содержащий подсписки, и выдает все не списочные элементы списка в том же порядке, в котором они расположены в исходном списке. Для выполнения этого задания Вам могут потребоваться встроенные предикаты:
- atom - возвращает T, если аргумент является атомом, NIL в противном случае;
- listp - возвращает T, если аргумент является списком.