sifflet-2.3.0: Simple, visual, functional language for learning about recursion.

Safe HaskellNone
LanguageHaskell2010

Data.Sifflet.Functoid

Synopsis

Documentation

data Functoid Source

A Functoid is either a FunctoidParts, representing a partially defined function, or a (completely defined) Function. A FunctoidParts represents an incompletely defined function, which has a function name, argument names, and a list of graph nodes representing the function body which might not yet form a complete expression tree, e.g., nodes might be unconnected.

Constructors

FunctoidParts 

Fields

fpName :: String
 
fpArgs :: [String]
 
fpNodes :: [Node]
 
FunctoidFunc 

Fields

fpFunc :: Function
 

Instances

data FunctoidLayout Source

What is a FunctoidLayout? You can think of it as a tree layout for a Frame, or for a Functoid, or as a Forest of Tree Layouts! For an Edit frame, it must be a forest, since the nodes are not yet necessarily connected into a tree. For a call frame, it will be a single TreeLayout (singleton list).

flayout :: Style -> Functoid -> Env -> Maybe [Value] -> FunctoidLayout Source

Graphically lay out the Functoid. mvalues: Nothing implies an uncalled frame, Just values implies a called frame, even with 0 arguments.