LISP
от Всичко за 1 лев, свободната енциклопедия
Версия от 15:12, 26 юли 2006 Samael (Беседа | приноси) ← Go to previous diff |
Версия от 17:51, 2 ное 2006 Stilgar (Беседа | приноси) Go to next diff → |
||
Ред 42: | Ред 42: | ||
За разлика от повечето други езици, които използват сложните и объркващи понятия ''променлива'' и ''масив'', ЛИСП използва ясните и лесни за ползване понятия "''точкова двойка''" и "''списък''". Точковата двойка представлява два указателя към левия и към десния елемент. Така основната структура от данни на езика става двоично дърво, което, разбира се, е по-просто от всякакви масиви, а свързаният списък е негов частен случай. | За разлика от повечето други езици, които използват сложните и объркващи понятия ''променлива'' и ''масив'', ЛИСП използва ясните и лесни за ползване понятия "''точкова двойка''" и "''списък''". Точковата двойка представлява два указателя към левия и към десния елемент. Така основната структура от данни на езика става двоично дърво, което, разбира се, е по-просто от всякакви масиви, а свързаният списък е негов частен случай. | ||
+ | |||
+ | == ЛИСП в народното творчество == | ||
+ | |||
+ | Хакерите са написали много произведения за ЛИСП - от романи, през есета, до стихотворения. Едно от най-популярните е Another Glitch in the Call от известната британска хакерска група [[Пинк Флойд]]. | ||
+ | |||
+ | We don't need no indirection<br> | ||
+ | We don't need no flow control<br> | ||
+ | No data typing or declarations<br> | ||
+ | Hey! You! Leave those lists alone!<br> | ||
+ | All in all, it's just a pure-LISP function call.<br> | ||
+ | |||
+ | We don't need no side effect-ing<br> | ||
+ | We don't need no scope control<br> | ||
+ | No global variables for execution<br> | ||
+ | Hey! You! Leave those args alone!<br> | ||
+ | All in all, it's just a pure-LISP function call.<br> | ||
+ | All in all, it's just a pure-LISP function call.<br> | ||
+ | |||
+ | We don't need no allocation<br> | ||
+ | We don't need no special nodes<br> | ||
+ | No dark bit-flipping in the functions<br> | ||
+ | Hey! You! Leave those bits alone!<br> | ||
+ | All in all, it's just a pure-LISP function call.<br> | ||
+ | All in all, it's just a pure-LISP function call.<br> | ||
+ | |||
+ | We don't need no compilation<br> | ||
+ | We don't need no load control<br> | ||
+ | No link edit for external bindings<br> | ||
+ | Hey! You! Leave that source alone!<br> | ||
+ | All in all, it's just a pure-LISP function call.<br> | ||
+ | All in all, it's just a pure-LISP function call.<br> | ||
[[Категория: Програмни езици]] | [[Категория: Програмни езици]] |
Версия от 17:51, 2 ное 2006
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 от известната британска хакерска група Пинк Флойд.
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.