Common Lisp
Материал из Википедии — свободной энциклопедии
Common Lisp — промышленный стандарт языка Лисп (ANSI X3.226-1994). Был разработан с целью привести к общему знаменателю множество существовавших на тот момент диалектов Лиспа. Включает в себя объектно-ориентированную подсистему CLOS, развитую систему Lisp макросов, позволяющую вводить в язык новые синтаксические конструкции, использовать техники метапрограммирования и обобщённого программирования.
Большинство современных реализаций Лиспа ориентируются либо на него, либо на альтернативный «академический» диалект лиспа — Scheme.
Содержание |
[править] Реализации
Common Lisp отличается от таких языков как C#, Java, Perl, Python тем, что он определяется своим стандартом и не существует его единственной или канонической реализации. Любой желающий может ознакомиться со стандартом и создать свою собственную реализацию.
| Название | Поддерживаемые платформы | Компиляция | Возможности | Лицензия |
|---|---|---|---|---|
| CLISP[3] | Windows, Mac, *nix | Байт-код | GNU GPL | |
| CMUCL[4] | Linux, FreeBSD, Solaris, Darwin | Байт-код, Native, Block Compilation | Общественное достояние с частями под BSD License | |
| ECL[5] | Microsoft Windows, *nix, Mac OS X | Байт-код, native via C | GNU GPL с частями под другими лицензиями | |
| GCL[6] | Windows, *nix | Native via C | GNU GPL | |
| Clozure CL (бывший OpenMCL)[7] | Linux/PPC, Linux/X86-64, Darwin/PPC, Darwin/X86-64, FreeBSD/X86-64 | Native | LGPL | |
| SBCL | Linux, BSD, Solaris, Mac OS X (Darwin), Windows (экспериментально) | Native | Общественное достояние с частями под MIT License и BSD License | |
| ABCL[8] | *nix, MacOS X (Darwin), Windows | JVM bytecode | LGPL | |
| emacs-cl[9] | Emacs | - | Неполная реализация | GPL |
| Allegro Lisp[10] | Windows, Unix, Linux, Mac OS X | - | Бесплатна для некоммерческого использования | |
| LispWorks[11] | Windows, Unix, Linux, Mac OS X | - | Shareware | |
| Corman Lisp[12] | Windows | Native | Shareware |
[править] Примеры
Пример задания контрольной работы по функциональному программированию: Напишите функцию, которая из данного одноуровневого списка строит список списков его элементов, например, (a b) -> ((a) (b)).
- Рекурсивный способ:
(defun list-of-lists (x) (when x (cons (list (first x)) (list-of-lists (rest x)))))
- Итеративный:
(defun list-of-lists (list) (mapcar 'list list))
-
- Используя loop:
(defun list-of-lists (list) (loop for i in list collect (list i)))
[править] Примечания
- ↑ Список основных реализаций Common Lisp
- ↑ Lisp Implementations
- ↑ CLISP
- ↑ CMUCL
- ↑ Embeddable Common Lisp
- ↑ GCL
- ↑ Clozure CL
- ↑ Armed Bear Common Lisp
- ↑ Emacs Common Lisp
- ↑ Allegro Lisp — реализация от Franz Inc.
- ↑ LispWorks. Разработчик — LispWorks, LLC (ранее Xanalys, Inc.)
- ↑ Corman Lisp — компактный, слегка сокращённый Common Lisp для Windows. Исходный код открыт под под лицензией, близкой к Shared source.
[править] Ссылки
- CLiki — Common Lisp Wiki
- common-lisp.net — хостинг для размещения открытых программных проектов.
[править] Документация и учебники
- Practical Common Lisp Учебник Питера Сейбеля (wiki-проект по переводу на русский ).
- Common Lisp HyperSpec — Гиперспецификация (HTML-версия) стандарта ANSI Common Lisp
- Common Lisp the Language, 2nd Edition by by Guy L. Steele — Классическое руководство по Common Lisp
- cl-cookbook.sourceforge.net — Поваренная книга Common Lisp
- Paul Graham. On Lisp
| Это незавершённая статья о компьютерных языках. Вы можете помочь проекту, исправив и дополнив её. |
|
|
|
|---|---|
| Используемые в разработке |
Ада • АПЛ • Ассемблер • ActionScript • ABAP/4 • AutoIt • AWK • BASIC • C • Кобол • C++ • C# • ColdFusion • D • dBase • Delphi • Erlang • Eiffel • Forth • Gambas • Фортран • Groovy • Haskell • Java • JavaScript • Icon • Limbo • Лисп • Lua • MATLAB • Object Pascal • Objective-C • Оберон • PowerBASIC • Parser • Паскаль • Perl • PHP • PureBasic • Python • ПЛ/1 • Пролог • Ruby • Tcl • Scheme • Smalltalk • SQL • Vala • Visual Basic • VB.NET |
| Академические | |
| IEC61131-3 |
Instruction List • ST • FBD • Ladder Diagram • SFC |
| Прочие | |
| Эзотерические | |

