PISCCore

By Andrew Owen
Released under the MIT license

Notes:

Eventally, the small batch of core PISC words

t ( -- t )

The True constant

f ( -- f )

The False constant

dip ( a quot -- a )

Takes a quotation and a value, and puts the value back on the stack after calling the quotation

stack-empty? ( -- empty? )

Returns true if the stack is empty, false if isn't

typeof ( a -- typeofa )

Get the type of the value at the top of the stack

? ( a b ? -- a/b )

The contintional operator: Takes a, b and a boolean.
Returns a if the boolean is true, b if it is false

call ( quot -- ... )

Call the quotation or callable that is on the stack

len ( lenable -- length )

Len is the go defined word that defers length checking to the go type system

eq ( a b -- same? )

Run shallow equality

deep-slow-reflect-eq ( a b -- same? )

Run a deep, refection based comparison. Slower than reflect-eq, but easier to use for vectors

module-loaded? ( module-name -- loaded? )

Check to see if a module with the given name is loaded

pick-dup ( ..x.. n -- ..x.. x )

Duplicates a value that is n entries from the top, or errors if there are less than n entries in the stack

pick-drop ( ..x.. n -- x )

Removes a value that is n entries from the top, putting it atop the stack. Raises an error if there are less than n entries in the stack

pick-del ( ..x.. n -- )

Deletes the value that is n entries from the top. Raises an error if there are less than n entries in the stack

println ( a -- )

print ( a -- )

dup ( a -- a a )

2dup ( a b -- a b a b )

swap ( a b -- b a )

drop ( a -- )

nip ( a b -- b )

2drop ( a b -- )

3drop ( a b c -- )

over ( x y -- x y x )

keep ( ..a x quot: [ ..a x --- ..b ] -- ..b x )

bi ( a quot1 quot2 -- ... )

if ( ? true false -- res )

when ( ? true -- res )

ndrop ( n -- )

inspect ( a -- a )

clear-stack ( -- )