Dear list,<div><br></div><div>Below is a *very* simple fluxus editor, in fluxus that depends on the debug-printing script I send before.</div><div>Run this. Hide the editor text with ctrl+h. Type something like "(build-cube)". You do get enter to get a newline and backspace to remove mistakes but no other editing functions. You also don't get to use strings because otherwise my list of characters got confused.</div>
<div><br></div><div>Hit "f1" to execute your script.</div><div><br></div><div>next step; parenting all of the printed stuff to a locator so we can have self-referential code that changes it's own colour and rotates and generally makes it impossible to get anything done.</div>
<div><br></div><div>Yours,</div><div>Kas.</div><div><br></div><div><br></div><div><div>(clear)</div><div>(define all_characters (string->list "abcdefghijklmnopqrstuvwxyz 1234567890 ()[]{}+-=<>/!@#$%^&*|"))</div>
<div>(define my_text "")</div><div><br></div><div>(define (eval-string input)</div><div>     (eval (read (open-input-string input))))</div><div><br></div><div>(define (keyb-out)</div><div>    (let ((output null))</div>
<div>        (map (lambda (x) (when (key-pressed-this-frame (string x)) </div><div>                        (set! output (cons (string x) output)))) all_characters)</div><div>        output))</div><div><br></div><div>(define (typing)</div>
<div>    (let ((newchars (keyb-out)))</div><div>        (for ((x (in-range 0 (length newchars))))</div><div>            (set! my_text (string-append my_text (list-ref newchars x)))))</div><div>    (when (and (key-pressed-this-frame (string #\backspace))</div>
<div>            (> (string-length my_text) 0)) </div><div>        (set! my_text (substring my_text 0 (- (string-length my_text) 1))))</div><div>    (when (key-pressed-this-frame (string #\return)) </div><div>        (set! my_text (string-append my_text "\n")))</div>
<div>    (when (key-special-pressed-this-frame 1) (eval-string my_text))</div><div>    (if (> (string-length my_text) 0)</div><div>        (display my_text)</div><div>        (clear-print)))</div><div><br></div><div>(every-frame </div>
<div>    (typing))</div></div>