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.cgi by Andrew Rock, 22/11/96.