С 50-х годов специалисты по искусственному интеллекту искали язык, пригодный для манипулирования понятиями, выраженными словами и фразами на естественном языке. Первым результатом этих поисков явилось семейство языков под названием IРL, от Information Processing Languages — языки обработки информации). Оно было создано пионером по искусственному интеллекту Алленом Ньюэллом и его сотрудниками. Вначале работа велась в «Рэнд корпорейшн», а затем в Технологическом институте Карнеги (позднее Карнеги—Меллона) в Питтсбурге, бастионе исследований по искусственному интеллекту.
Центральной идеей IPL было понятие списка.
Представляя данные в виде списка слов и других символов, программист мог связать понятия в памяти компьютера примерно таким же образом, как, по мнению специалистов по искусственному интеллекту, организован человеческий мозг.
Понятие списка интересовало и другого выдающегося члена тесного сообщества исследователей gj искусственному интеллекту — Джона Маккарти, блестящего и разностороннего математика. В 1958 году, когда при его помощи организовалась лаборатория по искусственному интеллекту при МТИ, Маккарти начал работу над языком высокого уровня, в котором понятие списка сочеталось с системой обозначений, заимствованной из экзотической области математики — так называемого ламбда-исчисления. Введенное в 1931 году математиком и логиком Алонзо Черчем, это исчисление оперирует только тремя элементами: символами, представляющими переменные и константы, скобками для группировки символов и обозначениями функций, выражаемыми греческой буквой "Лямбда".Маккарти назвал свой язык LISP от LISt Processing — обработка списков).
Пример программы на Lisp
(defun factorial (n)
(loop for i from 1 to n
for fac = 1 then (* fac i)
finally (return fac)))
|
|