InputForm

mkfunc.spad line 1 [edit on github]

Domain of parsed forms which can be passed to the interpreter. This is also the interface between algebra code and facilities in the interpreter.

# : % -> Integer
from SExpressionCategory(String, Symbol, Integer, DoubleFloat)
* : (%, %) -> %

a * b returns the input form corresponding to a * b.

+ : (%, %) -> %

a + b returns the input form corresponding to a + b.

/ : (%, %) -> %

a / b returns the input form corresponding to a / b.

0 : () -> %

0 returns the input form corresponding to 0.

1 : () -> %

1 returns the input form corresponding to 1.

= : (%, %) -> Boolean
from BasicType
^ : (%, Integer) -> %

a ^ b returns the input form corresponding to a ^ b.

^ : (%, NonNegativeInteger) -> %

a ^ b returns the input form corresponding to a ^ b.

atom? : % -> Boolean
from SExpressionCategory(String, Symbol, Integer, DoubleFloat)
binary : (%, List(%)) -> %

binary(op, [a1, ..., an]) returns the input form corresponding to a1 op a2 op ... op an.

car : % -> %
from SExpressionCategory(String, Symbol, Integer, DoubleFloat)
cdr : % -> %
from SExpressionCategory(String, Symbol, Integer, DoubleFloat)
coerce : % -> OutputForm
from CoercibleTo(OutputForm)
compile : (Symbol, List(%)) -> Symbol

compile(f, [t1, ..., tn]) forces the interpreter to compile the function f with signature (t1, ..., tn) -> ?. returns the symbol f if successful. Error: if f was not defined beforehand in the interpreter, or if the ti's are not valid types, or if the compiler fails.

convert : % -> %
from ConvertibleTo(%)
convert : DoubleFloat -> %
from SExpressionCategory(String, Symbol, Integer, DoubleFloat)
convert : Integer -> %
from SExpressionCategory(String, Symbol, Integer, DoubleFloat)
convert : List(%) -> %
from SExpressionCategory(String, Symbol, Integer, DoubleFloat)
convert : SExpression -> %

convert(s) makes s into an input form.

convert : String -> %
from SExpressionCategory(String, Symbol, Integer, DoubleFloat)
convert : Symbol -> %
from SExpressionCategory(String, Symbol, Integer, DoubleFloat)
convert : % -> SExpression
from ConvertibleTo(SExpression)
declare : List(%) -> Symbol

declare(t) returns a name f such that f has been declared to the interpreter to be of type t, but has not been assigned a value yet. Note: t should be created as devaluate(T)$Lisp where T is the actual type of f (this hack is required for the case where T is a mapping type).

destruct : % -> List(%)
from SExpressionCategory(String, Symbol, Integer, DoubleFloat)
elt : (%, Integer) -> %
from SExpressionCategory(String, Symbol, Integer, DoubleFloat)
elt : (%, List(Integer)) -> %
from SExpressionCategory(String, Symbol, Integer, DoubleFloat)
eq : (%, %) -> Boolean
from SExpressionCategory(String, Symbol, Integer, DoubleFloat)
flatten : % -> %

flatten(s) returns an input form corresponding to s with all the nested operations flattened to triples using new local variables. If s is a piece of code, this speeds up the compilation tremendously later on.

float : % -> DoubleFloat
from SExpressionCategory(String, Symbol, Integer, DoubleFloat)
float? : % -> Boolean
from SExpressionCategory(String, Symbol, Integer, DoubleFloat)
function : (%, List(Symbol), Symbol) -> %

function(code, [x1, ..., xn], f) returns the input form corresponding to f(x1, ..., xn) == code.

hash : % -> SingleInteger
from Hashable
hashUpdate! : (HashState, %) -> HashState
from Hashable
integer : % -> Integer
from SExpressionCategory(String, Symbol, Integer, DoubleFloat)
integer? : % -> Boolean
from SExpressionCategory(String, Symbol, Integer, DoubleFloat)
interpret : % -> Any

interpret(f) passes f to the interpreter.

interpret_in_new_env : % -> Any

interpret_in_new_env(f) evaluates f in the interpreter using fresh environment which is discarded after evaluation

lambda : (%, List(Symbol)) -> %

lambda(code, [x1, ..., xn]) returns the input form corresponding to (x1, ..., xn) +-> code if n > 1, or to x1 +-> code if n = 1.

latex : % -> String
from SetCategory
list? : % -> Boolean
from SExpressionCategory(String, Symbol, Integer, DoubleFloat)
null? : % -> Boolean
from SExpressionCategory(String, Symbol, Integer, DoubleFloat)
pair? : % -> Boolean
from SExpressionCategory(String, Symbol, Integer, DoubleFloat)
parse : String -> %

parse(s) is the inverse of unparse. It parses a string to InputForm

string : % -> String
from SExpressionCategory(String, Symbol, Integer, DoubleFloat)
string? : % -> Boolean
from SExpressionCategory(String, Symbol, Integer, DoubleFloat)
symbol : % -> Symbol
from SExpressionCategory(String, Symbol, Integer, DoubleFloat)
symbol? : % -> Boolean
from SExpressionCategory(String, Symbol, Integer, DoubleFloat)
unparse : % -> String

unparse(f) returns a string s such that the parser would transform s to f. Error: if f is not the parsed form of a string.

~= : (%, %) -> Boolean
from BasicType

SetCategory

ConvertibleTo(%)

CoercibleTo(OutputForm)

Hashable

BasicType

SExpressionCategory(String, Symbol, Integer, DoubleFloat)

ConvertibleTo(SExpression)