ELIP/Unlambda

The ELIP Unlambda project is implemented using the Order preprocessor library. Order is a Lisp-like functional language, similar to Scheme (it even has call/cc, force and delay!) so it would be a good base for the Unlambda interpreter. Order's variables match the regex pattern, or   if   is included. The combinators are implemented as Order lambda functions. They all begin with, and   is the   output operator.

ORDER_PP_FN(8fn(8A,		\ 8A			\ ))
 * 1) include 
 * 2) define ORDER_PP_DEF_6i			\

ORDER_PP_FN(8fn(8A,		\ 6v			\ ))
 * 1) define ORDER_PP_DEF_6v			\

ORDER_PP_FN(8fn(8A,		\ 8fn(8B,			\			8A		\	)))
 * 1) define ORDER_PP_DEF_6k			\

ORDER_PP_FN(8fn(8A,					\ 8fn(8B,						\			8fn(8C,					\ 8ap(8ap(8A,8C),8ap(8B,8C))	\ ))))
 * 1) define ORDER_PP_DEF_6s						\

ORDER_PP_MACRO(8fn(8A,			\ 8chain(				\			8put(8(arg)),		\			8A			\	)))
 * 1) define ORDER_PP_DEF_6dot(arg)			\

ORDER_PP_FN(8fn(8A,			\ 8chain(				\			8put(8(*NEWLINE*)),	\			8A			\	)))
 * 1) define ORDER_PP_DEF_6r				\

ORDER_PP_FN(8fn(8A,		\ 8call_cc(8A)		\ ))
 * 1) define ORDER_PP_DEF_6c			\

The combinators are complete, but there is no automatic translation from Unlambda into a form that can be used by the C preprocessor. This makes it a reduction instead of a true interpreter. Input is still not yet implemented, but can be done using a sequence of symbols as the source. The  function is not yet implemented, but it will probably use the   builtin.