Comments
Loading Dream Comments...
You must be logged in to write a comment - Log In
ArtistA three-lane motorway stretches from the left of the picture to the right of the picture. The first lane contains five cars with names on their roofs. The second lane contains five cars with numbers on their roofs. And the third lane contains five cars with percentages on their roofs.
Imagine a three-lane motorway. The first lane (Buf[0]) contains cars with names -- this is the symbol table. The second lane (Buf[1]) contains cars with numbers -- these are the data items. And the third lane (Buf[2]) contains cars with probability values -- these are the weightings. We have just described the data structure of a ::SHE+ILA:: Buf (jargon for "Buffer"). There are three main flavurs* (:)) of Buf, the normal one is just like an array, and only has the second lane (the data items). Think of it as a "B" road. The next flavur* (:)) also has a symbol table, used at Compile time to hold the datanames of local variables or class fields. Think of it as an "A" road. And the remaining flavur* (:)) uses all three lanes, the fast lane now holding probability weightings for use in Markov and Madlib use cases. We notate these three flavurs* (:)) as follows :
Woo <:: (1,2,3,4,5); // Normal Buf;
Foo <:: (unu=1, du=2, tri=3, kvar=4, kvin=5); // Buf with symbol table;
Boo <:: (unu=1=25, du=2=50, tri=3=10, kvar=4=5, kvin=5=5); // Buf with both symbol table and weightings;
We can use the third flavur* (:)) of Buf in Markov chains, FSM's (state machines), and MadLibs (procedurally generated prose) as follows :
Boo <:: (unu=(... a nested Buf goes here ...)=50, du=(... another nested Buf goes here ...)=50 );
Boo <:: (A=STATEA, B=STATEB, C=STATEC);
Boo <:: ("Cat"=25, "Dog"=25, "Bunny"=25, "Bear"=25); // We can omit the weightings if they are all identical;
Note the bottomest example has no symbol table; the values (e.g. "Cat") are the data. So there are two binary flags in the Buf header : one to indicate the presence of a symbol table, and one to indicate the presence of weighting probabilities. :)