Здравствуйте! Записался на ваш курс, но не понимаю как произвести оплату. Надо ли писать заявление и, если да, то куда отправлять? как я получу диплом о профессиональной переподготовке? |
Реализационные решения
Реальный состав системы и внешний мир
Реальный состав системы и возможности ее компонентов можно исследовать с помощью специальных функций, предоставляющих информацию о включенных в систему объектах и их свойствах.
Состав системы:
(APROPOS 'nm 'package) — печатает информацию обо всех символах, имена которых содержат подстроку " nm ". Второй аргумент, если он указан, ограничивает эту информации заданным пакетом.
(DESCRIBE 'fn ) — дает описание места объекта в системе.
(SYMBOL-PLIST 'fn) — выдает перечень всех свойств объекта.
(DOCUMENTATION 'fn 'function) — выдает документацию по объекту.
Отладка программ:
(DRIBBLE 'file) — направляет в файл протокол работы с Лисп-интерпретатором.
(STEP expr) — обеспечивает пошаговый режим интерпретации выражения с выдачей результатов каждого шага.
Ввод-вывод данных:
(SETQ inpt (OPEN file-in :direction :input )) — заведение переменной для обозначения открытого потока.
(READ inpt) — чтение из файла, открытого как поток.
(PRINT (PRINT eval-val prtcl) outpt) — запись данного eval-val в два разных файла.
(OPEN file-in :direction :input ) — открытие файла на чтение.
Далее следуют три варианта открытия файлов на запись:
(OPEN "output" :direction :output :if-exists :rename :if-does-not-exist :create) (OPEN "protocol" :direction :output :if-exists :overwrite :if-does-not-exist :create) (OPEN "history" :direction :output :if-exists :append :if-does-not-exist :create ) (CLOSE prtcl) — закрытие потока.
Особенности работы с файлами, основные приемы их открытия, задания специфики их функционирования и обмена данными с обычными символьными объектами иллюстрирует пример организации учебного цикла работы с Clisp, использующего пошаговую интерпретацию программ.
(DEFUN eval-protocol () (PROG (eval-val) ; выражения хранятся в файле "input.lsp" metka (PRINT '> prtcl) (SETQ eval-val (EVAL (list 'STEP ; пошаговое вычисление выражения (PRINT (PRINT ( if (eq 'eof (setq rinpt (READ inpt NIL 'eof) )) (return(CLOSE inpt)) rinpt) prtcl) hstry) ))) ; прочитанное записывается в файлы "protocol" и ; "history" (PRINT '- prtcl) ;(print eval-val) (print (print eval-val prtcl) outpt) ; результат интерпретации в файлах ; "protocol" и "output" (go metka) )) (DEFUN help ( function-name ) (ed (string function-name )) ) (DEFUN step1 (file-in) (PROG () (SETQ inpt (OPEN file-in :direction :input )) (SETQ outpt (OPEN "output" :direction :output :if-exists :rename :if-does-not-exist :create)) (SETQ prtcl (OPEN "protocol" :direction :output :if-exists :overwrite :if-does-not-exist :create)) (SETQ hstry (OPEN "history" :direction :output :if-exists :append :if-does-not-exist :create )) (PRINT '"****** new-session ******" hstry) ; цикл прервется по достижении конца файла ввода (eval-protocol) (CLOSE prtcl) (CLOSE hstry) (CLOSE outpt) )) (step1 "input.lsp") ; интерпретируемые выражения хранятся в файле ; "input.lsp"