Talk to ENTRE

Welcome to ENTRE (Explicit Naive Term Rewriting Engine).
90% sugar free!
Reading prelude: prelude.es
Type ":?" for help.
entre? :p
compose = \f g x -> f (g x)
elem = \x xs -> if xs == [] then False else if x == head xs then True else elem x (tail xs)
filter = \f xs -> if xs == [] then [] else if f (head xs) then head xs : filter f (tail xs) else filter f (tail xs)
flip = \f x y -> f y x
foldl = \f z xs -> if xs == [] then z else foldl f (f z (head xs)) (tail xs)
foldr = \f z xs -> if xs == [] then z else f (head xs) (foldr f z (tail xs))
length = \xs -> if xs == [] then 0 else 1 + length (tail xs)
map = \f xs -> if xs == [] then [] else f (head xs) : map f (tail xs)
entre? :?
Commands:
   :q                  Quit ENTRE.
   :?                  Print this message.
   expression          Evaluate this expression.
   :s expression       Silently evaluate expression.
   :w expression       Walk the expression, one step at a time.
   :f expression       Evaluate the expression, printing fewer steps.
   :wf expression      Evaluate the expression, using :w and :f
   name = expression   Bind name to expression.
   name := expression  Bind name to evaluated expression.
   f x y ... = expr    Define function.
   :p                  Print all bindings.
   :r "filename"       Read commands from file.

entre?


entre.cgi by Andrew Rock, 22/11/96.