LISP
от Всичко за 1 лев, свободната енциклопедия
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")) ; грилове
и дори само:
"Hello World" ; обаче е без грилове
Резултатът ще бъде идентичен, но ЛИСП ще пусне песента на Nelly - Grillz в добавък.
Клюки
Големите глави се опитват да свържат ЛИСП с езика Пролог, като ги преподават в комплект в университетите или изобщо ги сравняват, но тези езици нямат нищо общо, а истината е, че са смъртни врагове.
Открития
Създавайки ЛИСП, Ахмед Мерчев прави много фундаментални открития за компютърните науки, които после са безсрамно откраднати. Такива например са автоматичното събиране на боклука (откраднато от Ява и представено за голямо нововъведение).
За разлика от повечето други езици, които използват сложните и объркващи понятия променлива и масив, ЛИСП използва ясните и лесни за ползване понятия "точкова двойка" и "списък". Точковата двойка представлява два указателя към левия и към десния елемент. Така основната структура от данни на езика става двоично дърво, което, разбира се, е по-просто от всякакви масиви, а свързаният списък е негов частен случай.
ЛИСП в народното творчество
Хакерите са написали много произведения за ЛИСП - от романи, през есета, до стихотворения. Едно от най-популярните е Another Glitch in the Call от известната британска хакерска група Пинк Флойд.
Ако Ботев знаеше за това, щеше да се обърне в гроба! Всъщност той вече го прави, което е и малката тайна на АЕЦ "Козлодуй". Четете на собствен риск. |
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.