Лабораторна робота 1.
Тема: Ознайомлення з середовищем Lisp. Базові функції Лиспа. Символи, властивості символів. Математичні й логічні функції
Мета: ознайомитися із середовищем Lisp. Вивчити базові функції Лиспа, символи і їхні властивості, математичні й логічні функції.
Основні положення програмування на Лиспі.
Завантаження системи, системний редактор.
Функції списків.
Символи, властивості символів.
Математичні й логічні функції.
Хід роботи.
Контрольні питання.
Теоретичне введення.
Основні положення програмування на Лиспі
Лисп орієнтований на обробку нечислових завдань. Він ґрунтується на алгебрі спискових структур, лямбда-численні й теорії рекурсій.
Мова має функціональну спрямованість, тобто будь-яке речення укладене в дужки, уведене поза редактором уважається функцією й виконується відразу після натискання «ENTER».
Щоб запобігти обчисленню значення виразу, потрібно перед цим виразом поставити апостроф «’». Апостроф перед виразом – скорочення функції Лиспа QUOTE.
У Лиспі форми подання програми й оброблюваних нею даних однакові. І те й інше представляється списковою структурою, що має однакову форму.
Типи даних не пов'язані з іменами об'єктів даних, а супроводжують самі об'єкти. Змінні можуть у різні моменти часу представляти різні об'єкти.
Основні типи даних мови – атоми й списки.
Атоми – це символи й числа.
Список – упорядкована послідовність, елементами якої є атоми або списки. Списки задаються у круглих дужках, елементи списку розділяються пробілами. Кілька пробілів між символами еквівалентні одному пробілу. Перший елемент списку називається «головою», а залишок, тобто список без першого елемента, називається «хвостом». Список, у якому немає жодного елемента, називається порожнім і позначається «( )» або NIL.
Символ – це ім'я, що складається з букв, цифр і спеціальних знаків, що позначає який-небудь предмет, об'єкт, дію. У Лиспі символи позначають числа, інші символи або більш складні структури, програми (функції) і інші об'єкти Лиспа. Символи можуть складатися як із прописних, так і з малих літер, хоча в більшості Лисп-систем прописні і малі літер ототожнюються й представляються прописними буквами.
Символи Т и NIL мають у Лиспі спеціальне призначення: Т – позначає логічне значення істина, a NIL – логічне значення неправда.
При генерації або зчитуванні Лиспом нового символу, за його величину приймається він сам. Таке посилання символу на себе називається автопосиланням.
Створення програми на Лиспі – написання деякої функції, можливо складної, при обчисленні функції, що використає інші, або рекурсивно саму себе. На практиці, написання програм здійснюється записом у файл визначень функцій, даних й інших об'єктів за допомогою наявного в програмному оточенні редактора.
Необов'язково робити відступи в рядках виразів, що входять у функції. Насправді, за бажанням, ви можете написати всю програму в один рядок. Однак відступи в рядках і порожні рядки роблять структуру програми зрозумілою й читабельною. Так само вирівнювання початкових і кінцевих дужок основних виразів допомагають переконатися в балансі дужок.
Визначення функцій можуть зберігатися у файлах і завантажуватися використовуючи функцію RDS
(RDS '<ім'я файлу>)
Ця функція зчитує файл виразів і виконує ці вирази. <Ім'я файлу> - це строкова константа, що являє собою ім'я файлу без розширення (мається на увазі розширення "lsp").
Ви можете згенерувати ваші власні вихідні файли з використанням або редактору LISP, або редактору зовнішніх текстів, що відповідає ОС вашої ЕОМ і генерує стандартні текстові файли ASCII.
