|
|
|
Clojure Lisp для новичка в ФП22.09.2016, 14:15. Показов 4250. Ответов 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
|
|
|
Модератор
3141 / 2289 / 469
Регистрация: 26.03.2015
Сообщений: 8,912
|
||
| 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 для новичка Робототехника для новичка
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F
Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU.
Опрашиваются регистры. . .
|
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка:
Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
|
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо
Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
|
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман.
Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
|
|
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
|
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
|
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ
Основная суть и тезисы по измерениям:
0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема.
Объект не может перемещаться в 0D.
1D (Первое измерение):. . .
|
[EasyBuilder Pro] Памятка по разработке для панелей Weintek
ФедосеевПавел 26.08.2026
Памятка по разработке для панелей Weintek
ВВЕДЕНИЕ
Ранее, при реализации проектов основное внимание уделял разработке управляющей программы для контроллера, а панели оператора доставалось время. . .
|