Форум программистов, компьютерный форум, киберфорум
Lisp
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.77/13: Рейтинг темы: голосов - 13, средняя оценка - 4.77
14 / 14 / 7
Регистрация: 11.05.2013
Сообщений: 225

SETQ не работает для безымянной функции

26.08.2013, 23:27. Показов 2866. Ответов 25
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В самоучителе по Лиспу нашел, что можно лямбда-функцию присвоить переменной, и вызывать как обычную функцию:
Цитата из самоучителя
Если присвоить какому-либо атому в качестве значения корректное LAMBDA-выражение, то появляется возможность использовать это LAMBDA-выражение без повторного задания:
Lisp
1
2
3
4
5
6
(SETQ sq2 '(LAMBDA (x y) (+ (* x x) (* y y) )))
==> (LAMBDA (x y) (+ (* x x) (* y y)))
sq2
==> (LAMBDA (x y) (+ (* x x) (* y y)))
(sq2 6 7)
==> 85
Последний вызов (sq2 6 7) очень похож на вызов функции sq2. Сходство, однако, чисто внешнее. Атом sq2 не является именем функции (что будет разъяснено ниже, при рассмотрении списков свойств).


Задание: "Определите функцию add5(n), которая увеличивает числовой параметр n на 5, используя синтаксис λ-определения".
Мой код и реакция компилятора:
Lisp
1
2
3
4
5
6
(SETQ add5 '(LAMBDA (n) (SETQ n (+ n 5))))
==> (LAMBDA (n) (SETQ n (+ n 5)))
add5
==> (LAMBDA (n) (SETQ n (+ n 5)))
(add5 3)
==> EVAL: undefined function ADD5
Подскажите пожалуйста, что не так.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
26.08.2013, 23:27
Ответы с готовыми решениями:

Избавляемся от безымянной функции
Здравствуйте! Есть такая функция: (defun f8 (mylist) (/ (apply #'+ mylist) (length mylist)) ) Она вычисляет среднее...

setf setq
Скажите, в чем разница между setf и setq?

Вычисление функции не работает для отрицательных чисел
double y, a; Console.WriteLine("ввод a"); a = Convert.ToDouble(Console.ReadLine()); if (a < 0) ...

25
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38210 / 21143 / 4313
Регистрация: 12.02.2012
Сообщений: 34,756
Записей в блоге: 14
27.08.2013, 22:39
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от umc55555 Посмотреть сообщение
С решеткой перед кавычкой он заработал. К моему удивлению
Lisp
1
#'нечто  = (function нечто)
0
4528 / 3522 / 358
Регистрация: 12.03.2013
Сообщений: 6,038
27.08.2013, 22:57
Цитата Сообщение от umc55555 Посмотреть сообщение
CLisp пробовал, не понравилась стилизация под командную строку)).
Почему стилизация, CLISPовый REPL - обычная консольная программа. Но никто и не заставляет им пользоваться в консоли, можно и через специально обученный текстовый редактор. Не только можно, но и удобнее: можно изменять индивидуальные определения, вычислять значения выражений - всё это не отрываясь от работы над программой.

LispBox - это Emacs + лисп + Slime + настройки.
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38210 / 21143 / 4313
Регистрация: 12.02.2012
Сообщений: 34,756
Записей в блоге: 14
28.08.2013, 11:27
Цитата Сообщение от helter Посмотреть сообщение
можно изменять индивидуальные определения, вычислять значения выражений - всё это не отрываясь от работы над программой.
- все это позволяет и LispWorks (и, в значительной степени, HomeLisp)
1
4528 / 3522 / 358
Регистрация: 12.03.2013
Сообщений: 6,038
28.08.2013, 11:46
Цитата Сообщение от Catstail Посмотреть сообщение
все это позволяет и LispWorks
В противном случае за него никто не стал бы платить деньги. Я просто хотел обратить внимание начинающих на две существенные вещи: что разработка на лиспе (CL) предполагает параллельную работу с редактируемым файлом и REPLом, и что редактор должен быть умным (подробнее здесь: https://www.cyberforum.ru/post4827741.html). Насколько можно судить по отзывам, до Emacs + Slime не дотягивает никакая проприетарщина.
1
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38210 / 21143 / 4313
Регистрация: 12.02.2012
Сообщений: 34,756
Записей в блоге: 14
28.08.2013, 12:12
Цитата Сообщение от helter Посмотреть сообщение
В противном случае за него никто не стал бы платить деньги.
- я скачал LW c фирменного сайта. Никаких денег не платил. Для инд. пользования, вроде бы бесплатно.

Цитата Сообщение от helter Посмотреть сообщение
Насколько можно судить по отзывам
- а кто формировал отзывы? Если фанаты Emacs - то все понятно.

Не по теме:

Непонятна крайне негативная окраска понятия "проприетарный программный продукт"

0
4528 / 3522 / 358
Регистрация: 12.03.2013
Сообщений: 6,038
28.08.2013, 12:37
Цитата Сообщение от Catstail Посмотреть сообщение
- я скачал LW c фирменного сайта. Никаких денег не платил. Для инд. пользования, вроде бы бесплатно.
Да, но деньги делает компания на платных лицензиях, поэтому она заинтересована в том, чтобы их ИДЕ включала хотя бы часть функционала Emacs (бесплатная тоже, в рекламных целях).

Цитата Сообщение от Catstail Посмотреть сообщение
- а кто формировал отзывы?
К сожалению, ссылками не могу помочь, закладок не делал. Что-то на stackoverflow читал, что-то в других местах... Если в LispWorks редактор удовлетворяет десяти требованиям из https://www.cyberforum.ru/post4827741.html (a Emacs удовлетворяет), значит, это хорошая IDE. Сам я не могу их сравнивать, так как ни тем, ни другим не пользуюсь.

Не по теме:


Цитата Сообщение от Catstail Посмотреть сообщение
Непонятна крайне негативная окраска понятия "проприетарный программный продукт"
Оценки (в частности, оценки оценок) - дело субъективное. :)

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
28.08.2013, 12:37

Не работает шаблон функции для типа float
Доброго времени суток! Написал простой код с шаблоном функции, находит индекс элемента в массивах разных типов. Но в массиве float выдаёт...

Работает ли onClick Input'a для вызова функции в коде бехайнд?
Привет всем! Вот решил опробовать новый форум, чтобы получить совет. Пишу небольшой search, И мои 2 вопроса такие: 1. на странице...

Не работает нахождение СПМ для разной длинны окна (выделяющей функции)
Прошу помочь устранить ошибку в программе. %ФУНКЦИЯ РАСЧЕТА СПМ МЕТОДОМ УЭЛЧА function zadanie4(x) dlit=input('ВВЕДИТЕ...

Составить программу для вычисления значения следующей функции, код работает некорректно
Примерчик: Как сделал я: CLS FOR x = -(.5) TO .5 STEP .025 y = ((1 - EXP(2 * x)) / (1 + EXP(2 * x))) * ((SIN(2 * x)) ^ 2) ...

Почему не работает программа-пример для демонстрации работы функции strcmp (из книги Шилдта)?
Здравствуйте, помогите пожалуйста разобраться, почему программа не выполняется как надо. Программа-пример, для демонстрации работы функции...


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

Или воспользуйтесь поиском по форуму:
26
Ответ Создать тему
Новые блоги и статьи
сукцессия 30. Фосфорный и азотный замки по "честному" закону лимитирования Либиха
anaschu 16.07.2026
Основные достижения за последние дни 1. Механизм отложенного высвобождения фосфора Добавлен специальный пул для медленного разложения меланизированных гиф ЕСМ Реализована разная скорость. . .
Запрет пометки на удаление и отмены проведения
Maks 16.07.2026
Алгоритм из решения ниже реализован на нетиповом документе "ПутевойЛист" разработанного в КА2. Задача: запретить помечать на удаление и отменять проведения путевого листа при условии, если он сдан. . .
Как надо было делать правильно - вообще не слушать ИИ, его дело - текст.
Hrethgir 15.07.2026
А вообще надо было делать не так, чтобы не исправлять ошибку https:/ / www. cyberforum. ru/ blogs/ 223907/ 10996. html , правильно было : удалил кнопку, а потом добавил её. Всё это стресс конечно. Почему?. . .
Знаете, от чего появляется стресс?
kumehtar 15.07.2026
Стресс появляется оттого, что вы, зная как поступить правильно, делаете наоборот. Ларри Уингет
Нас бьют, а мы крепчаем? Какая чушь!
kumehtar 15.07.2026
Вот это вот бытующее мнение, что человек меняется только под действием проблем, всегда считал вредоносным. Поверь, от проблем у людей появляются не изменения, а нервное расстройство и ПТСР. А. . .
сукцессия 29. Переход от одних деревьев на другие делать более или менее вероятностным?
anaschu 12.07.2026
Насколько смена типов микоризы — исключительное событие в двухвековой сукцессии? Оценка вероятности в пространстве параметров В текущей версии модели успешно реализован ключевой механизм. . .
сукцессия 27. Думаю, как переделывать уже написанную статью с планами на сукцессию.
anaschu 12.07.2026
Анализ соответствия модели требованиям Реализованные компоненты: Механизм закисления почвы через протонную помпу Конкуренция между типами микориз pH как триггер сукцессии C/ P соотношение. . .
Сукцессия 26. Мат модель создана.
anaschu 12.07.2026
Модель смены растительных сукцессий посредством управления грибами работает внутри небольшой ячейки почвы, восстанавливающейся после пожара, где ненадолго бывшее царство хвойных снова захватили. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru