Зворотний зв'язок

Основи мови програмування Лісп

Функція (REVERSE lst1) обертає список lst1. Якщо вихідний список порожній, то і результатом буде порожній список. Інакше необхідно об’єднати обернений хвіст вихідного списку з його першим елементом. Оскільки на вхід другого аргумента функції APPEND повинен подаватися список, необхідно з першого елемента списку зробити список, який складається лише з нього. Це виконує команда (CONS (CAR lst) NIL).

$ (DEFUN REVERSE (lst)

((NULL lst) NIL)(APPEND (REVERSE (CDR lst)) (CONS (CAR lst) NIL)) )

Напишемо функцію REVERSE без використання функції APPEND. Для цього побудуємо функцію REVERSE з двома аргументами на принципі обробки стеку. Вихідний список — стек символів. Якщо він порожній, то і результуючий стек буде порожнім. Інакше взяти символ з вершини стеку і покласти його на другий стек. Другий стек при виклику повинен бути NIL: (REVER NIL).

$ (DEFUN REVER (lst1 lst2)$ (REVER ‘(q w e) NIL)

((NULL lst1) lst2)(e w q)

(REVER (CDR lst1) (CONS (CAR lst1) lst2)) )

5. Середовище системи muLisp

Середовище muLisp або поточний стан системи складається з усіх активних на даний момент структур даних, значень змінних та визначених функцій. Команда SAVE зберігає поточне середовище muLisp у вигляді SYS - файлу. Команда (SAVE ’C:HOME) зберігає середовище в файл HOME.SYS на диску C. Після успішного виконання команди запису повертається Т, інакше — NIL.

Середовище muLisp може бути завантажене за допомогою команди LOAD: (LOAD ). Якщо файл не знайдено, повертається NIL, інакше жодне значення не повертається, а mulisp починає працювати з новим середовищем.

Для завантаження SYS-файлів безпосередньо після запуску muLISP може використовуватися команда операційного середовища (ОС). Наприклад, команда ОС

> muLISP C:HOME

завантажує SYS-файл HOME.SYS із пристрою C після запуску muLISP із пристрою, взятого по замовченню. Відмітимо, що тип SYS-файла у команді не вказується. Якщо SYS-файл не знайдено при завантаженні з використанням команди ОС, на екран дисплею видається повідомлення: File not found.

Після завантаження SYS-файла кількість пам’яті, призначеної для кожної області даних, коректується у відповідності до поточного об’єму пам’яті. Це означає, що поточний об’єм пам’яті не обов’язково повинен бути точно таким, як і при створенні SYS-файлів. Але якщо пам’яті для розташування середовища SYS-файлів недостатньо, то виникає помилка типу "Недостатньо пам’яті, переривання", і muLISP буде завершено.

6. Трасировка функцій в muLisp.

Мова програмування muLisp для трасировки використовує програму debug.lsp, яка завантажується в середовище Ліспу. Для того, щоб дозволити трасировку функції , необхідно дати команду (TRACE-FUNCTION ). Якщо після цього викликати функцію func з параметрами, то на екрані відобразиться шлях виконання функції. На кожному кроці буде виводитися ім’я функції та список фактичних параметрів. Після виконання функції на екран виводиться значення функції. Команда (UNTRACE-FUNCTION ) забороняє трасировку функції . Якщо в тілі функції існує виклик інших функцій, і ми хочемо побачити їх трасировку, необхідно дозволити їх трасировку. Вираз = в трасі означає те, що функція повертає значення .

Якщо вивід траси відбувається дуже швидко, для тимчасової зупинки траси можна використати .


Реферати!

У нас ви зможете знайти і ознайомитися з рефератами на будь-яку тему.







Не знайшли потрібний реферат ?

Замовте написання реферату на потрібну Вам тему

Замовити реферат