|
87 / 95 / 15
Регистрация: 26.06.2013
Сообщений: 4,753
|
|
Функциональное программирование на Lispe09.04.2020, 11:18. Показов 10382. Ответов 146
Метки нет (Все метки)
Начал смотреть другой курс по функциональному программированию на Lisp
https://www.youtube.com/watch?... ebDaSS1P33 Смотреть желательно в HD на большом мониторе, иначе код может быть не виден из-за мелкого шрифта и придется скачивать программой (в Windows это Ummy Video Downloader) делать скриншот и увеличивать. И там сказано, что Lisp предполагает, что Вы пишите в чисто функциональном стиле, чисто функциональной парадигме. А по другому если программировать, немного искажая далее сказанное, является дурным тоном. Что Вы об этом думаете? Это не тот видео курс, о котором упоминал ранее https://www.youtube.com/playli... zm9GG4wOfU https://openedu.ru/course/ITMOUniversity/FPBC/
0
|
|
| 09.04.2020, 11:18 | |
|
Ответы с готовыми решениями:
146
Функциональное программирование Функциональное программирование на языке Lisp Харрисон Введение в функциональное программирование (книга с примерами на языке ML) |
|
4575 / 2773 / 491
Регистрация: 28.04.2012
Сообщений: 8,760
|
|
| 09.04.2020, 11:31 | |
|
2
|
|
|
4528 / 3522 / 358
Регистрация: 12.03.2013
Сообщений: 6,038
|
||
| 09.04.2020, 12:25 | ||
|
Основы синтаксиса Lisp на нескольких страницах Там я забыл упомянуть ещё такую "мелочь" как оптимизация хвостовой рекурсии - шибболет функциональщины. В CL её - нет! Нужен цикл - надо писать цикл.
1
|
||
|
87 / 95 / 15
Регистрация: 26.06.2013
Сообщений: 4,753
|
||
| 09.04.2020, 13:06 [ТС] | ||
|
А Homelisp тоже не функциональная реализация?
Добавлено через 5 минут Добавлено через 7 минут А не подскажите, почему Гвидо против хвостовой рекурсии? Что то не понял http://neopythonic.blogspot.co... ation.html
0
|
||
|
4528 / 3522 / 358
Регистрация: 12.03.2013
Сообщений: 6,038
|
||
| 09.04.2020, 13:12 | ||
|
0
|
||
|
87 / 95 / 15
Регистрация: 26.06.2013
Сообщений: 4,753
|
|
| 09.04.2020, 13:15 [ТС] | |
|
А если взять SBCL?
0
|
|
|
4528 / 3522 / 358
Регистрация: 12.03.2013
Сообщений: 6,038
|
|||
| 09.04.2020, 13:31 | |||
|
По поводу стектрейса - если бы рекурсия была оптимизирована, то хвостовые вызовы откусывали бы его куски. Представьте, что при вычислении foo(1) вызывалась бы куча функций и потом - foo(0), тогда в стектрейс не попала бы вся эта куча функций до foo(0). Может оказаться неинтуитивно. Добавлено через 9 минут Если вы ограничитесь задачами со списками длины < 10, то вряд ли у вас переполнится какой-либо стек. Худшее, что случится - что вы поверите, что так, рекурсивно, и надо писать на CL, и не дай бог выпустите методичку, в которой напишете "в лиспе есть циклы, но основной способ итерирования - рекурсия" или видеокурс "на лиспе надо программировать только функционально". А так - дело ваше.
2
|
|||
|
4575 / 2773 / 491
Регистрация: 28.04.2012
Сообщений: 8,760
|
||||||||
| 09.04.2020, 13:47 | ||||||||
|
Не по теме: Потому что он — анскильный неосилятор.
2) Юнит-тесты нужно писать.
2) Ну да, в языке без TCO рекурсия не может быть «day-to-day tool», а в тех, что есть — вполне. Причём от неё точно также можно абстрагироваться всякими filter/map/reduce как for/while/do позволяют абстрагироваться от goto. Кликните здесь для просмотра всего текста
Анонимус дело говорит:
1
|
||||||||
|
87 / 95 / 15
Регистрация: 26.06.2013
Сообщений: 4,753
|
||
| 09.04.2020, 13:52 [ТС] | ||
|
0
|
||
|
4528 / 3522 / 358
Регистрация: 12.03.2013
Сообщений: 6,038
|
|
| 09.04.2020, 14:07 | |
|
А зачем? TCO - одна из возможных оптимизаций. SBCL делает её, если выставлены определённые флаги оптимизации. Но, как говорит Гвидо, "нафига?" Зачем я буду опираться на не предусмотренное стандартом поведение без какой-либо причины? Чтобы продемонстрировать, что читал учебник по Scheme? Ср. https://google.github.io/style... #Recursion
К тому же сомневаюсь, что какая-либо реализация оптимизирует взаимную хвостовую рекурсию.
1
|
|
|
87 / 95 / 15
Регистрация: 26.06.2013
Сообщений: 4,753
|
||||||
| 09.04.2020, 16:21 [ТС] | ||||||
|
https://edu.donstu.ru/scan/%D0... %D0%B5.pdf
Добавлено через 1 час 49 минут Пытаюсь набрать код со страницы 9 файла. Не хватало скобки. Добавил.
Использую не последнюю версию SBCL, потому что XP 32 bits.
1
|
||||||
|
4528 / 3522 / 358
Регистрация: 12.03.2013
Сообщений: 6,038
|
|
| 09.04.2020, 16:35 | |
|
Выкиньте эту методичку тоже на помойку. Даже не задавайте вопросов, просто выкиньте.
1
|
|
|
87 / 95 / 15
Регистрация: 26.06.2013
Сообщений: 4,753
|
|
| 09.04.2020, 17:45 [ТС] | |
|
А что такое Элективный курс?
Общая редакция серии «Информатика»: С.Л.Островский Островский С. Л. Функциональное программирование на языке Лисп : Элективный курс / Сергей Львович Островский. – М. : Чистые пруды, 2009. – 32 с. – (Библиотечка «Первого сентября», серия «Информатика». Вып. 27). Знакомство с основами языка Лисп наилучшим образом способствует развитию навыков конструирования рекурсивных алгоритмов и пониманию сути рекурсии. В брошюре рассмотрены основы языка и содержится большое количество задач по темам «Обработка списков», «Вычислительные задачи», «Множества», «Комбинаторные алгоритмы». https://lib.1sept.ru/view_article.php?ID=200901310 (самого курса по ссылке нету).
0
|
|
|
87 / 95 / 15
Регистрация: 26.06.2013
Сообщений: 4,753
|
|
| 09.04.2020, 18:50 [ТС] | |
|
Е.И. Большакова, Н.В. Груздева Основы программирования на языке Лисп 2010
http://www.recyclebin.ru/BMK/LISP/PosobieLisp.pdf Предисловие Язык Лисп – один из старейших языков программирования и первый функциональный язык, получивший широкое распространение. Ядро языка было создано в 60-х годах прошлого века известным ученым Дж. Маккарти для решения задач обработки символьной информации [1, 2]. Основная структура данных языка Лисп – список, отсюда и название языка: Lisp – List Processing. Пик популярности Лиспа пришёлся на 70-е и 80-е годы, когда он применялся как основной язык для научных исследований в области искусственного интеллекта. В эти годы было разработано несколько достаточно развитых диалектов языка, из которых наиболее известны InterLisp, MacLisp, Common Lisp. Одна из первых реализаций Лиспа в России была осуществлена для ЭВМ БЭСМ-6 [8]. На базе концепций Лиспа был создан ряд других функциональных языков, в частности – язык Planner [10] для задач искусственного интеллекта и язык Scheme [3]. Хотя язык Лисп существует и развивается давно, тем не менее, он не был стандартизован, и его диалекты различаются по ряду аспектов. Официальный стандарт разработан только для языка Common Lisp [4, 5, 16], возникшего в результате попытки объединить в одном языке средства нескольких диалектов Лиспа, а также языка Scheme. В настоящее время кроме нескольких реализаций языка Common Lisp используется диалект AutoLisp [12] известного пакета AutoCAD, а также достаточно старый, но удачный диалект MuLisp, частично описанный в [13]. Несмотря на то, что Лисп потерял главенствующую роль как язык программирования задач искусственного интеллекта, в силу ряда своих качеств он остается языком, удобным для изучения функционального программирования. Лисп – один из наиболее ярких представителей функциональной парадигмы программирования [14, 15]. Простота и ясность синтаксиса сочетаются в нём с мощностью языковых средств и естественностью его расширения. Одна из наиболее удивительных особенностей Лиспа – это единая синтаксическая форма записи программ и данных, что позволяет обрабатывать структуры данных как программы и модифицировать программы как данные. В основу данного учебного пособия легли лекции по функциональному программированию на базе языка Лисп, неоднократно читавшиеся Е.И. Большаковой на факультете ВМК МГУ им. Ломоносова. Основное внимание в пособии уделяется базовым функциональным средствам языка Лисп, позволяющим изучить основополагающие принципы функциональной парадигмы. Поскольку непременной составляющей функционального программирования является использование рекурсии, в учебном пособии подробно разбираются приёмы построения рекурсивных программ, иллюстрируемые многочисленными примерами. Рассматриваются также вопросы построения функционалов – функций, аргументами и значением которых являются функции. Учебное пособие не ставит своей целью описание какого-то конкретного диалекта языка Лисп, однако в нём освещается ряд важных особенностей двух его известных диалектов – Common Lisp и MuLisp, в случае их принципиальных отличий. Существующие в современных диалектах Лиспа конструкции, нарушающие принципы строгой функциональности и внесённые в язык под давлением императивной парадигмы программирования (присваивания, блоки и др.), описываются лишь для полноты картины языка и сравнительно кратко. В последнем разделе пособия приводятся задания практикума по программированию на языке Лисп, поддерживающие его изучение. Авторы благодарят Н.В. Баеву за помощь в подготовке пособия.
0
|
|
|
87 / 95 / 15
Регистрация: 26.06.2013
Сообщений: 4,753
|
|
| 10.04.2020, 15:21 [ТС] | |
|
Шалимов П.Ю. "Функциональное программирование" БГТУ (2003)
Шалимов П.Ю. "Функциональное Программирование на языках Lisp и Erlang" 2010
0
|
|
|
Заблокирован
|
|
| 10.04.2020, 15:44 | |
|
"Lisp и Erlang" 2010
Есть LFE - Lisp flovered Erlang. Это по сути Lisp на Erlang VM.
1
|
|
|
87 / 95 / 15
Регистрация: 26.06.2013
Сообщений: 4,753
|
||||||
| 10.04.2020, 22:48 [ТС] | ||||||
|
В конце 4 урока
https://www.youtube.com/watch?... 33&index=4 есть код. Не понимаю, как работает выражение (prog2 1 2 3 4 5 (sign 5)) Из конспекта урока, который составлял:
0
|
||||||
|
331 / 199 / 9
Регистрация: 12.05.2015
Сообщений: 334
|
||
| 10.04.2020, 22:57 | ||
|
1
|
||
| 10.04.2020, 22:57 | |
|
Помогаю со студенческими работами здесь
20
Функциональное программирование: ввести фразу на естественном языке и преобразовать ее в список Функциональное программирование: определить, является ли аргумент функции списком элементов/атомов
Нужно подсчитать сумму ряда на Lispe Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|