Round and round
Scala Vim script
Switch branches/tags
Nothing to show
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
project
src
.gitignore
.vimrc
README
build.sbt

README

Right now I'm programing in an interactive environment. (vim, unix, compilers)

I would like a permanent, live system which can be programmed from within.

Version 0
---
vm (primitives plus IO)

Version 1
---
image save/restore

Version 2
---
dictionary types
stack types

------
Scopes
------

scope := (dictionary, quotation)

dictionary := definition*
definition := (string, scope)

quotation := code*
code := primitive | literal

literal := scope | string | number | ...

------
Primitives
------

Ouroboros words
---
. ( scope -- )
    (pronounced "spill")
    combines the scope at the top of the stack with the containing scope

@ ( -- containing-scope ) 
    (pronounced "at")
    pushes a reference to the containing scope onto the stack

Dictionary words
---
get ( key scope -- value )

put ( value key -- scope )
    creates a new scope with (key -> value) as the sole mapping in its dictionary

Scope words
---
push ( obj -- scope )
yank ( scope -- obj scope' )
pull ( scope -- scope' obj )
merge ( scope1 scope2 -- scope )

Plain words
---
shufflers
binops (calculator ops)