LISP

от Всичко за 1 лев, свободната енциклопедия

(Разлики между версиите)
Версия от 18:28, 2 ное 2006
Нинджа със ризото (Беседа | приноси)

← Go to previous diff
Версия от 18:13, 20 фев 2007
Нинджа със ризото (Беседа | приноси)

Go to next diff →
Ред 76: Ред 76:
All in all, it's just a pure-LISP function call. All in all, it's just a pure-LISP function call.
 +[[Категория: Творчество]]
[[Категория: Програмни езици]] [[Категория: Програмни езици]]

Версия от 18:13, 20 фев 2007

Адски пейзаж от корицата на 3то издание на Лисп
Увеличаване
Адски пейзаж от корицата на 3то издание на Лисп

LISP означава Language for Interpreting Spam Programs, с други думи - език с основна цел интерпретиране на спам програми.

Съдържание

История

ЛИСП е създаден през 681 г. от дясната и лявата ръце на Ахмед Мерчев, като демонстрация на ламбда математиката.

След това езикът е откраднат от инж. Антони Ставрев и лорд Любомир Славилов, като опит да накарат Мерчев да ходатайства за тях пред господаря си. Ръцете с изненада научават, че към езика им проявава интерес самият Велзевул, който се възползва от факта, че не са го патентовали, и го лицензира под сегашното му име. Старото му име се пази в най-дълбока тайна.

По-късно един от учениците на Мерчев написва eval функцията на Ява (единствения език в онези древни времена). Така става чудото - ЛИСП интерпретатор!

Синтаксис

ЛИСП е изключително мощен език, известен с използването на скоби в него. За разлика от другите езици, където се ползват зъболекарски скоби (брекети), тук се ползват грилове, които пък са по-яки и по-гъзарски.

Докато в C++ най-обикновената програма Hello World изглежда така:


#include <cstdlib>
#include <iostream>

int main()
{ // забележете, че C++ използва само брекети
 cout << "Hello world";
 return true;
} // съответно, програмите, писани на ЛИСП с грилове, са по-яки

и заема 8 реда, в ЛИСП тя ще се изпълни долу-горе така:

((list "Hello World")) ; грилове

Резултатът ще бъде идентичен, но ЛИСП ще пусне песента на Nelly - Grillz в добавък.

Клюки

Големите глави се опитват да свържат ЛИСП с езика Пролог, като ги преподават в комплект в университетите или изобщо ги сравняват, но тези езици нямат нищо общо, а истината е, че са смъртни врагове.

Открития

Създавайки ЛИСП, Ахмед Мерчев прави много фундаментални открития за компютърните науки, които после са безсрамно откраднати. Такива например са автоматичното събиране на боклука (откраднато от Ява и представено за голямо нововъведение).

За разлика от повечето други езици, които използват сложните и объркващи понятия променлива и масив, ЛИСП използва ясните и лесни за ползване понятия "точкова двойка" и "списък". Точковата двойка представлява два указателя към левия и към десния елемент. Така основната структура от данни на езика става двоично дърво, което, разбира се, е по-просто от всякакви масиви, а свързаният списък е негов частен случай.

ЛИСП в народното творчество

Хакерите са написали много произведения за ЛИСП - от романи, през есета, до стихотворения. Едно от най-популярните е Another Glitch in the Call от известната британска хакерска група Пинк Флойд.

Image:Botev.jpeg Ако Ботев знаеше за това, щеше да се обърне в гроба!
Всъщност той вече го прави, което е и малката тайна на АЕЦ "Козлодуй". Четете на собствен риск.
We don't need no indirection
We don't need no flow control
No data typing or declarations
Hey! You! Leave those lists alone!
All in all, it's just a pure-LISP function call.

We don't need no side effect-ing
We don't need no scope control
No global variables for execution
Hey! You! Leave those args alone!
All in all, it's just a pure-LISP function call.
All in all, it's just a pure-LISP function call.

We don't need no allocation
We don't need no special nodes
No dark bit-flipping in the functions
Hey! You! Leave those bits alone!
All in all, it's just a pure-LISP function call.
All in all, it's just a pure-LISP function call.

We don't need no compilation
We don't need no load control
No link edit for external bindings
Hey! You! Leave that source alone!
All in all, it's just a pure-LISP function call.
All in all, it's just a pure-LISP function call.
Лични инструменти