CurryInfo: icurry-3.2.0 / ICurry.Interpreter.evalExternal

definition: Info
 
evalExternal :: Graph -> String -> [NodeID] -> Node
evalExternal gr ename ns = case unQName ename of
  "apply" -> addPartialArg (lookupNode (ns!!0) gr) (ns!!1)
  "$!"    -> FuncNode "apply" ns
  "$#"    -> FuncNode "apply" ns
  "prim_Int_plus" ->
     ConsNode (show (lookupIntNode (ns!!0) gr + lookupIntNode (ns!!1) gr)) []
  "prim_Int_mult" ->
     ConsNode (show (lookupIntNode (ns!!0) gr * lookupIntNode (ns!!1) gr)) []
  _    -> error $ "step: unknown external function: " ++ ename
 where
  unQName s = let (mn,ufn) = break (=='.') s
              in if null ufn then mn else unQName (tail ufn)
demand: Info
 no demanded arguments
deterministic: Info
 deterministic operation
documentation: Info
 
Evaluates an external function to a node containing the evaluated value.
The arguments are the current graph, the external name,
and the argument nodes.
failfree: Info
 <FAILING>
indeterministic: Info
 referentially transparent operation
infix: Info
 no fixity defined
iotype: Info
 {(_,_,_) |-> _}
name: Info
 evalExternal
precedence: Info
 no precedence defined
result-values: Info
 _
signature: Info
 ICurry.Graph.Graph -> String -> [Prelude.Int] -> ICurry.Graph.Node
solution-complete: Info
 operation might suspend on free variables
terminating: Info
 possibly non-terminating
totally-defined: Info
 possibly non-reducible on same data term