Advertisement
Guest User

Untitled

a guest
Oct 24th, 2015
2,100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.20 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] - скриптовый язык, оче удобен для написания скриптиков с окошками или edsl
  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. Алсо, годная статья про проектирование eDSL'ей на CL http://swizard.info/articles/solitaire/article.html
  26.  
  27. — [u]Scheme[/u]
  28. + http://www.ccs.neu.edu/home/dorai/t-y-scheme/t-y-scheme.html
  29. + Racket Guide
  30. + SICP (это скорее вводные лекции по программированию, а не учебник по схеме, но тоже пойдет)
  31.  
  32. — [u]Clojure[/u]
  33. + Programming Clojure, 2nd edition (для новичков)
  34. + The Joy Of Clojure, 2nd edition (есть есть бэкграунд в Лиспе или ФП)
  35.  
  36. — [u]Tcl/Tk[/u]
  37. + Официальный учебник http://www.tcl.tk/man/tcl8.5/tutorial/tcltutorial.html
  38. + Документация по tcl http://www.tcl.tk/man/tcl8.6/TclCmd/contents.htm и tk http://www.tcl.tk/man/tcl8.6/TkCmd/contents.htm
  39. + Статьи про Tcl и Tk на wikibooks с примерчиками https://en.wikibooks.org/wiki/Category:Tcl_Programming
  40. + TkDocs с примерами на tcl, perl, ruby http://www.tkdocs.com/tutorial/index.html
  41.  
  42.  
  43. [b]Среды разработки[/b]
  44. Одно из основных преимуществ лиспа в сравнении с языками с циклом разработки "написал → перекомпилировал → запустил в отладчике" - поддержка интерактивно-итеративного метода разработки. Но без инструментария, обеспечивающего полноценное взаимодействие с реплом, оно сводится на нет. Поэтому писать без использования нормальной среды - значит упустить важную особенность языка.
  45.  
  46. — [u]Common Lisp[/u]
  47. + Emacs + SLIME - самый лучший вариант.
  48. + vim + SLIMV
  49. + LispWorks
  50. + [s]AllegroCL IDE[/s] упаси боже
  51. + Eclipse + cusp
  52. + [spoiler]<Что-нибудь для сублайма/атома уже запилили, наверное?>[/spoiler]
  53.  
  54. — [u]Scheme[/u]
  55. + Emacs + geiser
  56. + drRacket
  57.  
  58. — [u]Clojure[/u]
  59. + Emacs + CIDER
  60. + LightTable
  61. + Vim-fireplace
  62. + Cursive Clojure (IntelliJ plugin)
  63. + Counterclockwise (Eclipse plugin)
  64.  
  65. — [u]Tcl[/u]
  66. + Emacs + tcl-mode (только подсветка синтаксиса и простенькое взаимодействие с реплом, но жить можно)
  67.  
  68. Чтобы не пердолиться с емаксом, можно взять уже преднастроенный spacemacs ( https://github.com/syl20bnr/spacemacs ) или prelude ( https://github.com/bbatsov/prelude ).
  69.  
  70.  
  71. [b]Библиотеки[/b]
  72. — [u]Common Lisp[/u]
  73. + Quicklisp ( https://www.quicklisp.org/beta/ ) - CPAN из мира CL
  74. + Quickdocs ( http://quickdocs.org/ ) - документация по всем пакетам из quicklisp
  75. + Cliki ( http://cliki.net/ )
  76. + Обзор экосистемы общелиспа на швабре ( http://habrahabr.ru/post/265589/ )
  77.  
  78. — [u]Scheme[/u]
  79. + Racket: http://pkgs.racket-lang.org/ и http://planet.racket-lang.org/
  80. + Chicken: http://wiki.call-cc.org/chicken-projects/egg-index-4.html
  81. + http://snow.iro.umontreal.ca/?tab=Packages
  82. + http://www.schemespheres.org/spheres
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement