Comments
Loading Dream Comments...
You must be logged in to write a comment - Log In
... asks a viewer (lol). Well there are significant differences.
The Insert (a << b) and Extract (a =>>b) operators are inspired by C++ streams (cout, cin), as a way of appending data to an existing "Buf" (::SHE+ILA::'s name for a dynamically-modifiable Buffer, which may contain Vectors, Arrays, or Functions). They have no connection with "Less Than" or "Greater Than" comparison ops, which ::SHE+ILA:: notates as "$<", "$<=", "$>", "$>=", "==", "<>").
To declare and initialise a variable, C++ may say "int x = 42;". In ::SHE+ILA::, we would say "x <:: 42;". We don't need to specify the datatype (e.g. int) as ::SHE+ILA:: is dynamically typed (see the drawing called "F", way back in the #sheila tag).
::SHE+ILA:: has no "go to" command. It has a full set of structured progamming operations: {...} for functions or lambda's, {*...*} for loops, {+...+} for macros, {!...!} for threads, and {?...?} for events.
Arrays (including parameter lists) are written as (1,2,137,`3,99); which denotes a 5 element array for example. The "`" represents a negative number, to distinguish it from the normal dyadic "-" subtraction operator. Arrays are stored internally in Bufs, which are dynamically garbage-collected by ::CKPT:: (the system checkpointer thread), and may contain a mixture of datatypes (e.g. numerics, strings, lambda's (immediate functions), quaternions (!), and atoms (entries into the system dictionary), etc...).
"If" statements are implemented as one-branch or two-branch "switch" statements, for example
"if (q) then quit();" would be coded as "((), &quit) [1+q];"
What does ::SHE+ILA:: stand for? ::SHE+ILA:: is made up of two modules, ::SHE:: (Segmented Hierarchical Environment), which is the datastore (roughly like the filesystem on a traditional operating system), and ::ILA:: (Interactive Language Architecture), the datapath (like the command interpreter or ALU on a traditional operating system).
To explore further use the hashtag #sheila and view in "latest" mode, reading the descriptions. They are numbered sequentially in hexadecimal (lol), e.g. this one is number $54 :)