GENTUT01.TXT General Tutorial for Lisa GJ2 Fic3 -- the f3 language explained as a series of tiny essays THIS IS ESSAY 01. WHEN IT GETS MORE THAN 99, WE'LL BRING IN LETTERS AND SUCH, E.G. A1 Written by Aristo Tacoma with L.A.H. Date: 2011:2:22 Copyright author, further distribution license is www.yoga4d.org/cfdl.txt. Kids: there are other tutorials for you. But you should find pieces here and there which are easy to read. In B9, use the search function, CTR-F or F4 within each. ***PHILOSOPHICAL INTRODUCTION: WHAT ARE WARPS IN F3? Suppose you want to make a graphical figure on the screen, and you have a function looking like this: (LET MAKE-GRAPHICAL-FIGURE-ON-SCREEN BE (( )) (( (( DRAW-THE-FIRST-LINE )) (( DRAW-A-SECOND-LINE )) (( DRAW-A-THIRD-LINE )) (( DRAW-THE-COMPLETING-FOURTH-LINE )) )) OK) Now, on the surface, you haven't used any warps. You have just called functions. For those who enquire really really deeply, they will know that everything, not just something, is a question of warps, but let's stick to appearancies just for the moment. Suppose further that for reasons connected to just this graphics program, you want to change something such as -- the sequence the lines are drawn -- or even what is meant by the word 'line'. And you want to change it run-time, not program-time. In other words, you allow the interactor with your program to choose things which otherwise would have been laid out as function calls. Then the function above might look like this: (LET MAKE-GRAPHICAL-FIGURE-ON-SCREEN BE (( )) (( (( THE-FIRST-DRAWING-ACTION >>> => HYPERCONNECT )) (( THE-SECOND-DRAWING-ACTION >>> => HYPERCONNECT )) (( THE-THIRD-DRAWING-ACTION >>> => HYPERCONNECT )) (( THE-FOURTH-DRAWING-ACTION >>> => HYPERCONNECT )) )) OK) And all the programmer has to do, prior to starting it up, is to load up the warps like this -- but this can then be swung around by menues and such during run-time: (LET SET-START-VALUES-FOR-WARPS BE (( )) (( (( :DRAW-THE-FIRST-LINE => ? THE-FIRST-DRAWING-ACTION < ? THE-SECOND-DRAWING-ACTION < ? THE-THIRD-DRAWING-ACTION < ? THE-FOURTH-DRAWING-ACTION <