;;; -*- Mode:TEXT; -*- WORK TO BE DONE ON XTEACH 0. numbered dumps for... 1. fix files 2. Think about handlers for the control characters that do fun things like explain that they've typed ^B or ^D or whatever and ask them if they are losing utterly or have some idea of what magic they've tripped over. 3. Think about having lessons that enable features of the system so that once they're at a certain level of sophistication, they can hack fun things like breakpoints and stuff. 4. Make the lessons go lots farther so that these are fun things to think 'bout. 5. RENAMEF and back copies. KMP says: I suspect the right thing is to write a subroutine which reaps all but the most recent version and/or to set the generation retention count of that file to 1. 6. MORE stuff... (defvar **more**-chars nil) (defmacro bind-**more**-chars (specs &body body) `(let ((**more**-chars (append **more**-chars ',specs))) ;or some such ,@body)) (defun some-lesson-part () (bind-**more**-chars ((#^A abort-lesson "Abort lesson")) ...cruft...)) (defun **maybe-more** (...) (cond ... ((assq c **more**-chars) (funcall (assq c **more**-chars))) ... (flag (format t ...hair...)))) the hair comes from what happens if you do (bind-**more**-chars ((#^A thing1)) (bind-**more**-chars ((#^A thing2)) ...)) to get (SPACE=Continue,RUBOUT=Flush,^A=thing2) and not thing1. the reason i suggest append is you can do (do ((l **more**-chars (cdr l))) ((null l)) (cond ((not (assq (caar l) (cdr l))) ;no other awaits us (format outstream "...")))) ;so type out info... 7. Should we give them a script file to play with? (mention it in LESSON INFO, if so. 8. Lessons-- INFO is there to be a special lisp for them, or just xteach itself? EVAL makes the claim that evaluation will be talked about "in greater detail" later. Hah! application does not seem to be addressed any place. OBJECT says we'll deal with uses of TYPEP in later lessons. we don't.