0 / 0 / 0
Регистрация: 26.08.2013
Сообщений: 34
1

Перевести пример на язык LISP

05.09.2013, 15:29. Показов 1098. Ответов 6
Метки нет (Все метки)

Помогите перевести пример на язык LISP
Миниатюры
Перевести  пример на язык LISP  
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.09.2013, 15:29
Ответы с готовыми решениями:

Пример LISP задача
Помогите пожалуйста, для очередной лабораторной работы скинули задачу вот такую. Найти все...

Язык Factor - конкатенативный Lisp
Можно ли считать язык Factor конкатенативным лиспоподобным языком? Допустим, если я хочу на нем...

Common Lisp как мета-язык
swizard: Common Lisp как мета-язык

Clojure Хотелось бы изучить язык программирования Lisp
Хотелось бы изучить язык программирования Lisp, и в связи с этим у меня два вопроса 1) какой...

6
Модератор
Эксперт функциональных языков программированияЭксперт Python
29983 / 16461 / 3332
Регистрация: 12.02.2012
Сообщений: 27,379
Записей в блоге: 5
05.09.2013, 16:15 2
Lisp
1
2
3
4
5
6
7
8
(defun a (x y)
 (expt (abs (+ (cos x) (cos y))) (+ 1 (* 2 (expt (sin y) 2)))))
 
==> a
 
(a 0.4 -0.875)
 
==> 2.64192190184807
Добавлено через 2 минуты

Lisp
1
2
3
4
5
6
7
8
(defun b (z)
 (+ 1 (* z (+ 1 (* z (+ 1/2 (* z (+ 1/3 (* 1/4 z)))))))))
 
==> b
 
(b -0.475)
 
==> 0.614815201822917
2
Заблокирован
05.09.2013, 22:21 3
Лучший ответ Сообщение было отмечено как решение

Решение

Второй пример - явно рекурсия
Lisp
1
2
3
(defun row (z n)
    (if (zerop n) 1 (+ (/ (expt z n) (float n)) (row z (1- n)))))
(row -0.475 4) ==>0.614815
2
Модератор
Эксперт функциональных языков программированияЭксперт Python
29983 / 16461 / 3332
Регистрация: 12.02.2012
Сообщений: 27,379
Записей в блоге: 5
06.09.2013, 12:03 4
При больших n выгоднее считать так:

Lisp
1
2
3
4
5
6
7
8
(defun b (z n &optional (s 1) (k 1) (a z))
  (if (> k n) s (b z n (+ s (/ a  k)) (+ k 1) (* a z))))
 
==> b
 
(b -0.475 4)
 
==> 0.614815201822917
0
4556 / 4262 / 363
Регистрация: 12.05.2012
Сообщений: 3,001
07.09.2013, 07:43 5
Lisp
1
2
3
4
5
(defun row (z n)
  (1+ (loop for n from 1 to n sum (/ (expt z n) n))))
 
> (row -0.475 4)
0.61481524
Добавлено через 11 минут
Lisp
1
2
3
4
5
(defun 1+z+z^2/2+z^3/3 (z n)
  (1+ (loop for n from 1 to n sum (/ (expt z n) n))))
 
> (1+z+z^2/2+z^3/3 -0.475 4)
0.61481524
1
Модератор
Эксперт функциональных языков программированияЭксперт Python
29983 / 16461 / 3332
Регистрация: 12.02.2012
Сообщений: 27,379
Записей в блоге: 5
07.09.2013, 09:32 6
Но чтобы избежать "дорогой" операции expt, вероятно, лучше так:

Lisp
1
2
3
4
5
6
7
8
9
10
(defun b (z n)
  (let ((s 1) (w '(1)))
   (iter (for i from 1 to n) (summing (/ (car (push (* (pop w) z) w)) i) into s)) 
     s))
 
==> b
 
(b -0.475 4)
 
==> 0.614815201822917
0
Заблокирован
07.09.2013, 14:27 7
Цитата Сообщение от Catstail Посмотреть сообщение
избежать "дорогой" операции expt
я не против оптимизации, но стоит ли оно того, по крайней мере, в данном случае, когда ряд сходится достаточно быстро. Уже n>=15 погрешность более, чем в 6м знаке после разделителя. на практике этого более, чем достаточно
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.09.2013, 14:27

Перевести код функции SquareDigitsSum (Haskell -> Lisp)
Никак не получается переписать функцию SquareDigitsSum с Haskell на Lisp( На Haskell функция...

Как перевести из Lisp на Prolog или решение задач
Всем добрый вечер. К сожалению, в Prolog не работал, нужно перевести из Lisp в Prolog, либо сделать...

Решил перевести код с Pascal на Lisp. Алгоритм подсчета счастливых билетов
Автобусные билеты нумеруются шестизначными числами от 000000 до 999999. Напишите программу, которая...

перевести на язык Си
немного начала.. библиотеки изменила, думаю смогу еще максимум ввод-вывод подправить, но все...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.