|
Здравствуйте! Записался на ваш курс, но не понимаю как произвести оплату. Надо ли писать заявление и, если да, то куда отправлять? как я получу диплом о профессиональной переподготовке? |
Реализационные решения
Реальный состав системы и внешний мир
Реальный состав системы и возможности ее компонентов можно исследовать с помощью специальных функций, предоставляющих информацию о включенных в систему объектах и их свойствах.
Состав системы:
(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"