LISP

312
.
Есть кто-то кто хоть как-то касался этого ЯП?
После пролога он какой-то немного жутковато-эмоциональный со своим безграничным набором смайлов.
В интеренете очень мало инфы по нему и легко потерятся :-/
Сейчас читаю про его особенности и создается впечатление всемогущего языка, особенности которого переняли и С, и джава, судя по ВИКИ. А литературы и каких-то статей сложно найти. Хабр почти пустой.
По-этому, если кто-то знаком хоть минимально, то не проходите мимо :-)
.
Судя по всему, как и в прологе, самой маленькой еденицей программы есть атомы, всего их два типа - строки и числа.
Есть константы - T(правда) и NIL(ложь).

Меня сейчас терзает один вопрос. Если в прологе создавались правила.. в одном секторе программы объявляем, а в другом - описываем их. То что делать тут?

Уже нашел описание списков.. те самые скобки в которых идет перечесление.. элементов, как я понимаю.
Опять же, как в лиспе, есть понятие - голова списка и его хвост..
Чтоб задать список, если не прав, то поправте, кто может, нужно использовать такой формат:
имя списка ::= (голова, хвост)

Дальше же идет работа со списками с помощью немалого количества функций..
p.s. Буду пробовать создавать списки.. Может чего и получится
.
описание функции: (имя функции аргумент1 аргумент2) - имя функции и перечесление аргументов через пробел
.
Теперь приведу пример:
Входная строка: ((q (w (e) r) t) y). Исходная: ((q) w (e) r)

Мой ход мыслей был такой:
достаем голову списка, отбрасывая хвост, и в итоге получаем список(назовем его список 1): q (w (e) r) t
достаем голову из списка 1 и в итоге получаем: q
следущим шагом возвращаемся к списку 1 и достаем его хвост, получая список 2: (w (e) r) t
тут у нас снова лишний хвост.. достаем снова голову, теперь из списка 2, получая список 3: w (e) r
далее все просто.. контактируем q и список 3, получая в итоге: q w (e) r
Команда: (CONS (CAR(CAR '((q (w (e) r) t) y))) (CAR (CDR(CAR '((q (w (e) r) t) y)))))

Одного не понял.. как q внести тоже в список..
p.s. Может попробую что-то еще делать. А сегодня ухожу спать.
Всего: 4