Lisp: відмінності між версіями

[перевірена версія][перевірена версія]
Вилучено вміст Додано вміст
Nconc (обговорення | внесок)
Nconc (обговорення | внесок)
Немає опису редагування
Рядок 14:
|influenced = [[Logo (мова програмування)|Logo]], [[Python]], [[Smalltalk]], [[Ruby]], [[Dylan]], [[Mathematica]]
}}
'''Лісп''' ('''LISPLisp''') — [[мова програмування]] загального призначення з підтримкою [[парадигма програмування|парадигм]] [[функціональне програмування|функціонального]] та [[процедурне програмування|процедурного]] [[програмування]]. Вихідна інформація записується у вигляді [[Список|списків]].
 
Мову програмування Лісп було розроблено в кінці [[1950-ті|1950-тих]] у [[Массачусетський технологічний інститут|Масачусетському Технологічному Інституті]] для дослідження проблем [[штучний інтелект|штучного інтелекту]]. Але, через потужність закладених принципів, мова програмування Лісп також придатна для багатьох інших застосувань.
Рядок 34:
LISP означає ''LISt Processing'' (обробка списків), мова програмування працює із списками (та списками списків) розміщуючи їх між дужками. Дужки визначають межі списку. Списки є базисом мови програмування Лісп. Мова програмування Лісп була однією із перших мов програмування з [[Прибирання сміття (в програмуванні)|автоматичним прибиранням сміття із пам'яті]].<ref name="mcarty">http://portal.acm.org/citation.cfm?id=367177.367199</ref>
 
Однією з переваг LISPLisp є те, що кожна змінна може виступати як рядок символів (власне ім'я), посилання на значення, структура даних або функція. Саме останній факт зробив цю мову дуже зручною при розробці лінгвістичних програм, особливо для природних мов з чіткою структурою речення (наприклад, англійська). В таких мовах кожне слово, його зміст/сенс/імператив, можна інтерпретувати як функцію від слів, що знаходяться на чітко визначених позиціях у реченні, до того ж ці позиції визначаються самим цим словом. Приклад системи, що побудована на цій ідеї можна знайти в книзі Т.Вінограда «Програма яка розуміє природню мову». Ця система реалізує діалог з користувачем на природній мові. Користувач бачить перед собою стіл з деякими предметами різного кольору, і може віддавати накази природньою мовою, про перенесення якогось предмету. При цьому система (маніпулятор) сама визначає що треба зняти з цього предмету, який предмет на яких можна класти (на піраміду вже нічого не покладеш), і якщо є неоднозначність у виборі предмету задає уточнюючі питання. Також реалізовано контекстне посилання займенників по тексту діалогу (користувач може сказати: «перестав той куб туди-то», і система з тексту діалогу може визначити, який саме «той куб»). Це імперативи. Також система може відповідати на питання. Вивід відповіді схожий до прологівського. Також є можливість користувачу висловлювати декларативи — вносити нові знання про об'єкти, наприклад, надавати їм імена. Хоча словник і база знань відносно не велика, але вона має можливості до розширення.
 
== Приклади ==