50 lines
1.9 KiB
Text
50 lines
1.9 KiB
Text
hd =
|
|
|
|
-[
|
|
The text enclosed within the so called dash-brackets shown above
|
|
and below will be interpreted as a list of character strings. It
|
|
can contain anything except uninterpreted dash-brackets, and can
|
|
be used in any declaration or expression. The dash-brackets don't
|
|
have to be on a line by themselves.
|
|
]-
|
|
|
|
|
|
example =
|
|
|
|
-[Some additional facilities allow here-documents to be nested and
|
|
combined. Writing something like -[ hd ]- within a nested pair of
|
|
dash-brackets will cause the text declared above (having the
|
|
identifer hd) to be inserted at that point. The enclosed item can
|
|
be any expression that evaluates to a list of character strings.
|
|
We could therefore "escape" a literal dash-bracket within a
|
|
here-document by writing -[ <'-['> ]-. Dash-brackets can be nested
|
|
to any depth, alternating between literal text and compiled code
|
|
on each level.]-
|
|
|
|
template "x" =
|
|
|
|
-[A further use of this notation involves defining a text-valued
|
|
function. The output of this function will be this text, with
|
|
the argument inserted here -["x"]- and again here -["x"]-. The
|
|
argument type should be a list of character strings.]-
|
|
|
|
formletter ("x","y") =
|
|
|
|
-[Other calling conventions are possible. The left argument
|
|
comes out here -["x"]- and the right one here -["y"]-.]-
|
|
|
|
designpattern =
|
|
|
|
-[A point-free style of function declaration is also supported.
|
|
The argument comes out here -[. ~& ]-, after being fed through
|
|
the function appearing within the nested dash-brackets (in this
|
|
case the identity function). This usage is indicated by a period
|
|
after the left inner dash-bracket. Nesting is also allowed in
|
|
point free dash-bracket function specifications.]-
|
|
|
|
abstractionastronaut =
|
|
|
|
-[Higher order functions to any level are specified by piling on
|
|
the periods like this -[.. ~&]-. This one is a second order function
|
|
that needs to be applied to another function in order to get a
|
|
first order function such as the previous three examples.]-
|