|
|
|
Clojure Lisp для новичка в ФП22.09.2016, 14:15. Показов 4192. Ответов 37
Всем привет, уважаемые форумчане. Прочитал очень много тем на форуме про Lisp и мне захотелось его изучить. Сам я пишу на Java и C#, с ФП никогда до этого еще не сталкивался. Имеется у меня и sicp, и let over lambda и много других книг, что здесь советовали, но я не знаю с чего начать. Из диалектов понравился Clojure, т.к. JVM, и сам Common Lisp. Отсюда вытекает вопрос - если перед изучением Clojure я прочту SICP, Let over Lambda, Мир Лиспа и им подобные, то не возникнет ли у меня проблем при освоении этого диалекта Lisp? Или стоит просто прочитать книги по Clojure, а на остальные не обращать внимания? Что вообще почитать по ФП? Спасибо за советы и ваши мысли.
0
|
|
| 22.09.2016, 14:15 | |
|
Ответы с готовыми решениями:
37
C++ для новичка-не новичка Книги или другой источник, где описана история версий Lisp и Common Lisp Организация циклов в Lisp (bee lisp demo) |
| 23.09.2016, 13:24 | |
|
aekuznecov, почитал твою тему в соответствующем разделе, лично я как маленький живу на Винде с Хаскель платформой, стаком не пользуюсь - пакеты (которые ставятся на Винду без ругани) ставлю кабал-инсталлом, Атомами-Саблаймами не пользуюсь, набираю кот в виндовом блокноте (даже не ++, а обычном стандартном, где ничего нет), и мне хватает - я же только балуюсь
Хотя у меня ИнтелжИдея с плагином умеет красиво подсвечивать хаскельный кот, а подключенный к ней хлинт даже подсказывает как оптимальнее записать те или иные конструкции, но Идея тааак медленно стартует, что я для хаскеля ее и не запускаю. Но ты джавист, у тебя она вообще может на компе не закрывается, поэтому может и пойдет
1
|
|
|
|
|
| 23.09.2016, 13:32 [ТС] | |
|
_Ivana, у меня idea только на работе открыта, и то я стараюсь редко ей пользоваться, потому что мне удобнее что-то вписать через notepad/sublime, скомпилить через javac и потом проверить в тестовой среде все что я внес
![]() грубо говоря, можно ставить себе Haskell Platform и просто не париться и читать книги + решать задачки?
0
|
|
| 23.09.2016, 13:43 | ||
1
|
||
|
|
|
| 23.09.2016, 13:44 [ТС] | |
|
_Ivana, спасибо за совет и ответы
буду погружаться в пучины ФП и Haskell
0
|
|
| 23.09.2016, 13:50 | |
|
Ты это, пиши если что (С)
Ну, в смысле, в хаскель раздел, по поводу решения задачек, которые вызывают трудности или вопросы. А если параллельно на Кложе или Схеме будешь их решать - то можно в этот раздел.ЗЫ кстати, в свободное от катка время я тут накостылил свой собственный вариант Лиспа (2 реализации - на хаскеле и на джаве - с гуем и прибамбасами), функциональный, Схемо-подобный - можешь и на нем тоже попробовать решать те же задачки
1
|
|
|
|
|
| 23.09.2016, 14:00 [ТС] | |
|
_Ivana, думаю, что как только набью руку, можем попробовать совместными усилиями допилить реализацию и сделать её крутой
Это был бы очень полезный для меня опыт
0
|
|
|
2305 / 1064 / 77
Регистрация: 12.03.2013
Сообщений: 4,987
|
||
| 23.09.2016, 14:08 | ||
|
Добавлено через 38 секунд aekuznecov, если вы писали на Java, то вам, скорее всего, лучше подойдёт и будет понятнее Clojure, чем Common Lisp.
2
|
||
| 23.09.2016, 14:09 | |
|
aekuznecov, я бы тебе предложил следующее. Поставить haskell (платформу или как угодно), поставить (или открывать в онлайн-IDE) какой-нибудь из Лиспов - Clojure, Scheme, или мой Liscript (последний тебе может быть интересен как проект на джаве в том числе). И читать SICP / решать задачки из него на haskell и на выбранном лиспе. Haskell - волшебное торжество чистого ленивого иммутабельного
1
|
|
|
|
|
| 23.09.2016, 14:25 [ТС] | |
|
_Ivana, значит это я Ваши статьи на Хабре нашел тогда по этому диалекту
достаточно интересно было читать
0
|
|
| 23.09.2016, 14:30 | |
|
Значит получается, не зря я их туда писал?
![]() Ладно, вы для начала факториал напишите в нескольких вариантах: 1) рекурсивный алгоритм 2) итеративный алгоритм - хвостовая рекурсия 3) левая свертка списка по моноиду mul 4) аналогичная правая свертка 5) что еще сможете придумать Некоторые особенности различия языков будут видны уже на этих тривиальных примерах.
1
|
|
|
393 / 165 / 32
Регистрация: 10.12.2015
Сообщений: 717
|
||
| 23.09.2016, 15:01 | ||
|
0
|
||
| 23.09.2016, 15:55 | |
|
Catstail, там мало и кратко/обзорно...
https://habrahabr.ru/post/281859/ - общая про то, что оно есть https://habrahabr.ru/post/282093/ - чуть детальнее про реализацию ТСО
5
|
|
|
4576 / 2775 / 491
Регистрация: 28.04.2012
Сообщений: 8,782
|
|
| 24.09.2016, 12:41 | |
|
1
|
|
| 24.09.2016, 12:55 | |
|
Так у меня есть изменяемое состояние - def передефивает связанное имя в текущем окружении, set! пересетивает первое найденное вверх по иерархии словарей начиная с текущего окружения. Оба работают как по передаваемым напрямую, так и по вычисляемым символам.....
Добавлено через 15 секунд Так, стоп, с прямым углом спутал - вы же про мои реализации на haskell Ну там я примеры с изменяемым состоянием не делал ![]() Добавлено через 8 минут Хотя можно было конечно сделать на State-монадах, STRef, IORef, MVar и прочих понятных снаружи страшных внутри абстракциях Зато тема про ленивые потоки просто на ура ложится на haskell
1
|
|
|
199 / 102 / 4
Регистрация: 16.08.2015
Сообщений: 209
|
|
| 25.09.2016, 12:56 | |
|
0
|
|
|
|
|
| 03.10.2016, 11:42 [ТС] | |
|
budden, изучить ФП на примере Scheme/CL(знаю что есть для этого либы там)/Clojure и начать мыслить немного по-другому и шире и постепенно перенести все свои задачи с Java на Lisp-семейство
Добавлено через 1 час 20 минут и я решил сначала поближе познакомиться со Scheme и Racket из-за SICP, а после этого рулить в сторону CL и Clojureдля лучшего их понимания и более быстрого освоения
1
|
|
|
Модератор
3140 / 2288 / 469
Регистрация: 26.03.2015
Сообщений: 8,900
|
||
| 05.10.2016, 17:07 | ||
|
1. Scheme - простой. 2. Racket - удобный (более-менее). 3. Всё равно придётся Scheme изучить, чтобы SICP читать. Но чтобы во время чтения решать те же задачи на Haskell, желательно предварительно прочитать какую-нибудь короткую книгу про Haskell. Например, первые 6-8 глав отсюда: http://anton-k.github.io/ru-ha... k/toc.html Времени займёт не так много, зато будет с чем сравнивать. Если понравится, то дочитаете до конца (возможно, уже параллельно с SICP).
1
|
||
| 05.10.2016, 17:07 | |
|
Подскажите пожалуйста IDE для линукса (например, для кали-линукса) для новичка для обучения программированию на си++ Книга для новичка Dlookup для новичка Робототехника для новичка
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Был там один разговор по поводу свободы в материальном мире.
kumehtar 19.08.2026
Суть: рассматривается живое существо, оказавшееся внутри довольно странной системы (этого мира) и пытающееся обустроить в ней свой кусок пространства.
Жизнь действительно предъявляет каждому. . .
|
Когда логика программы не спасает от человеческих ошибок
Maks 18.08.2026
В последнее время всё чаще и чаще сталкиваюсь с таким явлением, как абсолютная невнимательность (или глупость) пользователей. Проявляется это чаще всего на работе в коллективе. Допустим, человек с. . .
|
Лето уходит
kumehtar 17.08.2026
|
Мысли в слух
kumehtar 17.08.2026
Забавно, насколько сейчас стала доступна информация. Например о магии, духовном развитии, медитациях, и других подобных направлениях, ранее зачастую тайных, передаваемых от учителя к ученику. Хотя. . .
|
|
Перемещение строк из ТЧ в другой документ с учетом текущего пробега
Maks 17.08.2026
Реализация из решения ниже выполнена на примере нетипового документа "Автозапчасти", с ТЧ "Шины".
За основу взят алгоритм отсюда: https:/ / www. cyberforum. ru/ blogs/ 359708/ 10838. html
Задача: . . .
|
Саморегулирующийся социальный контракт для сервера cross-section.
Hrethgir 14.08.2026
С кодом конечно таких глубоких размышлений пока не было, впрочем я уже привык к алгоритмизации. Суть предмета записи: снова в диалоге с нейросетью (я взял пока себе ник для учётки админа - Rector). . . .
|
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет:
1. Использовать системное время и дату,
2. Есть возможность вводить время и дату вручную.
3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
|
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber.
Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
|