s" ~" i( 65 )i reshape lst ( ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ) | ======================== | Tue.Oct,20061010 | ======================== | | 1705 | | 20070912.1707 | NASCENT 4th.CoSy TUI A crucial aspect of the efficiency for the user/programmer in CoSy is the interface , nowdays called a "Textual User Interface" which allows the intermixing of machine executable "sentences" within an ongoing log or diary of notes , etc , for purely human , tho machine searchable , consumption . This is the first documentation written within the 4th.CoSy system itself . Only a few function keys have been defined . Most salient , tapping F1 will present their definitions in the "res"ult window . The key that virtually defines CoSy is F6 which evaluates the line in this "text" window under the cursor . The line is evaluated by the Reva FORTH interpreter in which the system is written and anything emitted is spooled and displayed in the "res" window . Note because commands are executed directly in FORTH any typo or wrong thought has a good chance of blowing the system away . Thus it it strongly recommended to click the "Save" button ( or ctrl-s ) before doing anything exporatory . This will save the environment so it will be restored the next time you restart . Here is a simple example . Put the cursor on the line below and tap F6 : 1 2 - . The F5 key is complementary to the F6 key in that it inserts the contents of the "res" window into "text" at the cursor . Try it . All the text , and anything that persists from session to session is stored in the CoSy "1-tree" dictionary . See http://cosy.com/CoSy/NL0506.htm and the CoSy.f file for more detail . For instance , the definition of the F1 key is { " help" (sym) v@ van rtype } which retrieves the value of the object ` help from ` R grabs the content of it , and "types" it to the result window . The F1 help has been edited simply by editing the contents of "res" and executing : | res> cs-> help ( Note , I commented the line above so it won't be accidentally executed . ) Likewise this text has been edited and retrieved using the lines below . text> cs-> IntroHelp | ` IntroHelp v@ van >text | ` IntroHelp v@ van type | list in res . There is a lot more to go into , but there are some major transformations ahead so this introduction is intended as just a taste of the nature of things to come . Below are some examples , including my notes for the presentation at Ray Cannon's APL Moot outside London last August . I have cleaned out most of my personal notes ( yes , I have started using this as my daily log suplementing old K.CoSy ) . Please post any Reva FORTH level questions on the Reva forum , or , if on the CoSy APL level , feel free to inaugurate the CoSy forum at ( ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ) | \/ Some 4th.CoSy examples . F6 the indented lines sequentially . \/ s" 0123456789" cs-> DIGITS ` DIGITS v@ i( 70 )i reshape lst ( 0123456789012345678901234567890123456789012345678901234567890123456789 ) 30 _iota i( 2 )i ' * each i1 ' + each >t0> lst | DaVinci Code question as to number of panes t0 ' + scan >t1> -1 _take lst | |>| ( 900 ) t1 i( 666 )i ' = f? $. | |>| 7FFFFFFF | in Louvre pyramid = 666 | nil -- not found s" ! Hello World ! " i( 7 31 )i reshape >t0> lst | Vidal Sassoon liked this demo in 1981 t0 t0 ' reverse eachm ' cL each >t1> lst | in APL which is substantially shorter . t1 t1 reverse cL lst | ================================================ | getwords | /\ spool words into vector t0 . Cannot have any other word on same line | t0 i# . | |>| 11611 | < these numbers are from before contexts . t0 s" " toksplt >t1> i# . | |>| 1444 | split on spaces . t1 -2 _take lst | |>| ( ( 1442 ) ( words ) ) | last 2 words t1 i( -2 )i _ >t0 | cut off last 2 words t0 -4 _take lst | last 4 words t0 cs-> words | save in dictionary ` words v@ lst | retrieve & list f( 1.90 1.28 )f cs-> LE | Store Pound and Euro conversion rates ` LE v@ lst 6200.0 fsqrt f. | |>| 78.74007 | Alaskan BP oil spill size - feet 576.0 fsqrt f | |>| 24.00000 . | size M ^ 2 576.0 fpi f/ fsqrt fdup f. 2. f* f. | |>| 13.54055 27.08110 27.08 2. f/ fdup f* fpi f* f. | |>| 575.95320 24 dup * . | |>| 576 24. 2. f/ 2. fsqrt 2 f* f. | |>| 16.97056 200000.0 42.0 f/ f. | |>| 4761.90476 | gal -> barrels | TRIP | --------------------------------------- | Tue, Aug 15 11:05 AM to 04:40 PM Denver, CO (DEN) to New York-LaGuardia, NY (LGA) 3hrs 35min - nonstop Frontier AirlinesAirlines Frontier Airlines Flight 510 Airbus Jet- Economy | --------------------------------------- | Thu, Aug 17 06:05 PM to 06:25 AM Arrive next day Newark, NJ (EWR) to London Heathrow, UK (LHR) 7hrs 20min - nonstop British AirwaysAirlines British Airways Flight 184 Boeing 767 Jet- Economy | --------------------------------------- | dt | |>| ( 2006 8 19 15 0 15 ) | Hard disk dead on Gateway ! | | \/ DEMO that I really do have an APL \/ | 12 _iota i( 3 4 )i reshape >t0> lst 24 _iota i( 2 3 4 )i reshape >t0> lst t0 i( 10 100 200 300 )i ' * aaply lst 10000 _iota i>f >t0> i# . | generate the 0 -- 9999 , convert to floats . t0 ' fsin eachm >t1 | take their sines . t1 ' f+ across lst | add them up & list result | \/ Show internal structure of dic \/ | dnames | dictionary names dic DMP | dump leading 32 bytes . Header - 1st 3 cells . cell 0 , type 0 - nested . dic i# . | count of items from cell 1 dic 0 i@ DMP | dump of 0th item - names dic 0 i@ 4 i@ DMP | 4th name dic 1 i@ 4 i@ DMP | second item values . value for 4th name dic 1 i@ 4 i@ lst | List it dic 1 i@ 4 i@ van type | Simply retrieve actual string and type it . dt | |>| ( 2006 8 19 21 23 24 ) Showed Paul Grosvenor 01342713204 ( -- \/ -- ACTUAL SUNDAY DEMO -- \/ -- ) dt | |>| ( 2006 8 20 8 57 13 ) MAIN POINTS o AN INFANT but ALIVE o AN APL . PURE " LISTS OF LISTS " -- 1-TREE . MODULO INDEXING -- rather than scalar extension . o OPEN FREEWARE DOWN TO THE Intel -- ( Windows & Linux ) . Reva FORTH FOUNDATION -- ACTIVE COMMUNITY . Rapidly evolving facilities - sockets - sql-lite . big-nums . gui o DOWNLOAD IT & JOIN THE DEVELOPING COMMUNITY dt | |>| ( 2006 8 20 11 9 41 ) | --------------------------------------- | Wed, Aug 30 09:35 AM to 11:55 AM London Heathrow, UK (LHR) to Chicago-Ohare, IL (ORD) 8hrs 20min - nonstop British AirwaysAirlines British Airways Flight 295 Boeing 777 Jet- Economy | --------------------------------------- | Sun, Sep 03 10:15 AM to 11:40 AM Chicago-Midway, IL (MDW) to Denver, CO (DEN) 2hrs 25min - nonstop Frontier AirlinesAirlines Frontier Airlines Flight 538 Airbus Jet- Economy dt | |>| ( 2006 9 3 18 38 29 ) | | --------------------------------------- | 11642 emails waiting ! dt | |>| ( 2006 9 4 14 23 51 ) | | --------------------------------------- | | --------------------------------------- | 2006 09 23 | --------------------------------------- | 1100 / outdoorchannel : PP hill climb dt | |>| ( 2006 9 26 17 10 35 ) Got running in Tui again . /\ missed because not in Tui ! /\ dt | |>| ( 2006 9 27 9 3 40 ) | ( 2006 9 27 17 4 41 ) | ======================== | Fri.Oct,20061013 | ======================== | | 1514 | | ToDo | --------------------------------------- | ( A lot ) o Get running in FORTH stack so continuous from one execution to next . o Make dynamic "dic" based execution key . ( ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ) | \/ USEFUL PRHASES \/ | include CoSy/furniture.f dt !! dir dnames savetext savedic bye"