Guest User

Untitled

a guest
Dec 29th, 2015
2,227
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.78 KB | None | 0 0
  1. Лисп - семейство языков программирования. Характерные особенности лиспов: динамичность, гомоиконность (код как данные), программируемость.
  2.  
  3. [b]Основные диалекты[/b]
  4. — [u]Common Lisp[/u] - разрабатывался как промышленный язык, пригодный для широкого спектра применения, из-за чего имеет достаточно объемную спецификацию. Является мультипарадигменным (процедурщина, функциональщина, ооп (CLOS)), с сильной, динамической типизацией. Есть опциональная декларация типов и, в некоторых реализациях (sbcl, например), частичный их вывод.
  5. Описание особенностей: http://habrahabr.ru/post/143490
  6. Основные реализации:
  7. + свободные: SBCL (нативный код), Clozure CL (нативный код), ECL (через сишку), Clisp (байт-код; небольшой размер образа; похоже, заброшен), Clasp (llvm; ориентирован на интероп с c++), ABCL (байт-код JVM), gcl, cmucl
  8. + коммерческие: LispWorks, Allegro CL, Scieneer CL, mocl (для программирования под ведро и ios)
  9. — [u]Scheme[/u] - это минималистичный лисп, пригодный в основном для обучения, исследований. Тем не менее, Racket вполне практичен. Racket включает в себя много подъязыков (typed racket, lazy racket, frtime racket), включая схему стандартов r5rs и r6rs.
  10. — [u]Clojure[/u] - Стильный, модный, молодежный лисп с бóльшим уклоном в функциональщину, иммутабельными структурами данных, поддержкой параллельщины с транзакционной памятью, агентами. Ориентированность на JVM сильно отразилась на дизайне языка, что многим не нравится.
  11. — [u]Emacs Lisp[/u] - его область применения ограничивается емаксом. Является наследником ТОГО САМОГО MacLisp'а.
  12. — [u]Tcl[/u] - скриптовый язык с немного [s]наркоманским[/s]странным синтаксисом. Из коробки множество батареек на любой случай жизни, среди которых неповторимый Tk. Язык очень удобен для написания скриптиков, особенно когда к ним требуется приделать графический интерфейс.
  13. — [u]Rebol[/u]
  14. — [u]PicoLisp[/u] - [s]Наркоманская хуита[/s]
  15. — newLISP - Скриптовый лисп с компактным и быстрым интерпретатором и батарейками на любой случай жизни. В первую очередь предназначен для скриптоты, которую обычно пишут на perl, python, tcl, sh: обработка текстов, работа с сетью, базами данных, взаимодействие с ОС, построение графиков и т.п.
  16. Список возможностей: http://www.newlisp.org/index.cgi?Features
  17. Отличия от других диалектов: http://www.newlisp.org/index.cgi?page=Differences_to_Other_LISPs
  18.  
  19. [b]Как изучить?[/b]
  20. — [u]Common Lisp[/u]
  21. + Practical Common Lisp http://www.gigamonkeys.com/book/ или русский перевод — http://lisper.ru/pcl/
  22. + On Lisp http://www.paulgraham.com/onlisp.html
  23. + Common Lisp HyperSpec http://www.lispworks.com/documentation/HyperSpec/Front/ — стандарт языка
  24. + Art of Metaobject Protocol — подробное описание MOP и CLOS
  25. + Попрактиковаться можно на Exercism'е http://exercism.io/languages/lisp
  26. Алсо, годная статья про проектирование eDSL'ей на CL http://swizard.info/articles/solitaire/article.html
  27.  
  28. — [u]Scheme[/u]
  29. + http://www.ccs.neu.edu/home/dorai/t-y-scheme/t-y-scheme.html
  30. + Racket Guide
  31. + SICP (это скорее вводные лекции по программированию, а не учебник по схеме, но тоже пойдет)
  32. + Попрактиковаться можно на Exercism'е http://exercism.io/languages/scheme
  33.  
  34. — [u]Clojure[/u]
  35. + Programming Clojure, 2nd edition (для новичков)
  36. + The Joy Of Clojure, 2nd edition (есть есть бэкграунд в Лиспе или ФП)
  37. + Попрактиковаться можно на Exercism'е http://exercism.io/languages/clojure
  38.  
  39. — [u]Tcl/Tk[/u]
  40. + Официальный учебник http://www.tcl.tk/man/tcl8.5/tutorial/tcltutorial.html
  41. + Документация по tcl http://www.tcl.tk/man/tcl8.6/TclCmd/contents.htm и tk http://www.tcl.tk/man/tcl8.6/TkCmd/contents.htm
  42. + Статьи про Tcl и Tk на wikibooks с примерчиками https://en.wikibooks.org/wiki/Category:Tcl_Programming
  43. + TkDocs с примерами на tcl, perl, ruby http://www.tkdocs.com/tutorial/index.html
  44.  
  45.  
  46. [b]Среды разработки[/b]
  47. Одно из основных преимуществ лиспа в сравнении с языками с циклом разработки "написал → перекомпилировал → запустил в отладчике" - поддержка интерактивно-итеративного метода разработки. Но без инструментария, обеспечивающего полноценное взаимодействие с реплом, оно сводится на нет. Поэтому писать без использования нормальной среды - значит упустить важную особенность языка.
  48.  
  49. !!Чтобы не пердолиться с емаксом, %%лучше%% можно взять уже преднастроенный spacemacs ( https://github.com/syl20bnr/spacemacs ).
  50.  
  51. — [u]Common Lisp[/u]
  52. + Emacs + SLIME - самый лучший вариант.
  53. + vim + SLIMV
  54. + LispWorks
  55. + [s]AllegroCL IDE[/s] упаси боже
  56. + Eclipse + cusp
  57. + [spoiler]<Что-нибудь для сублайма/атома уже запилили, наверное?>[/spoiler]
  58.  
  59. — [u]Scheme[/u]
  60. + Emacs + geiser
  61. + drRacket
  62.  
  63. — [u]Clojure[/u]
  64. + Emacs + CIDER
  65. + LightTable
  66. + Vim-fireplace
  67. + Cursive Clojure (IntelliJ plugin)
  68. + Counterclockwise (Eclipse plugin)
  69.  
  70. — [u]Tcl[/u]
  71. + Emacs + tcl-mode (только подсветка синтаксиса и простенькое взаимодействие с реплом, но жить можно)
  72.  
  73.  
  74. [b]Библиотеки[/b]
  75. — [u]Common Lisp[/u]
  76. + Quicklisp ( https://www.quicklisp.org/beta/ ) - CPAN из мира CL
  77. + Quickdocs ( http://quickdocs.org/ ) - документация по всем пакетам из quicklisp
  78. + Cliki ( http://cliki.net/ )
  79. + Обзор экосистемы общелиспа на швабре ( http://habrahabr.ru/post/265589/ )
  80.  
  81. — [u]Scheme[/u]
  82. + Racket: http://pkgs.racket-lang.org/ и http://planet.racket-lang.org/
  83. + Chicken: http://wiki.call-cc.org/chicken-projects/egg-index-4.html
  84. + http://snow.iro.umontreal.ca/?tab=Packages
  85. + http://www.schemespheres.org/spheres
Advertisement
Add Comment
Please, Sign In to add comment