{{language
|site=http://fexl.com}}
[http://fexl.com Fexl] is a [[functional programming]] language designed to be compact, efficient, and customizable in embedded environments.  Its implementation aims to be the thinnest possible functional programming layer built on top of [[C]].

Fexl has no keywords, so whenever you see a symbol in a Fexl program, that symbol always refers to a function.

A symbol may be defined within a Fexl program, or its definition may be left entirely open.  The definitions of all open symbols are supplied by a ''context''.  A context is a function which supplies definitions for symbols.  A context function is itself written in Fexl.

A Fexl program may therefore be resolved inside an arbitrary context, giving whatever meanings you like to all its open symbols.  This makes it easy to wrap a Fexl program in an enhanced or restricted context.  For example, in a web context you probably don't want "delete_file" to be defined at all, at least not in its normal sense.  So you would resolve the program in a highly restricted context which only provides a handful of safe functions, omitting all the dangerous ones.