Advertisement
Guest User

Untitled

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