\begin{Verbatim}[commandchars=\\\{\}] \PY{p}{(}\PY{k}{define\PYZhy{}syntax}\PY{+w}{ }\PY{n}{curried} \PY{+w}{ }\PY{p}{(}\PY{k}{syntax\PYZhy{}rules}\PY{+w}{ }\PY{p}{(}\PY{p}{)} \PY{+w}{ }\PY{p}{[}\PY{p}{(}\PY{k}{\PYZus{}}\PY{+w}{ }\PY{p}{(}\PY{p}{)}\PY{+w}{ }\PY{n+nb}{exp}\PY{+w}{ }\PY{k}{...}\PY{p}{)} \PY{+w}{ }\PY{p}{(}\PY{k}{lambda}\PY{+w}{ }\PY{n}{args} \PY{+w}{ }\PY{p}{(}\PY{k}{if}\PY{+w}{ }\PY{p}{(}\PY{n+nb}{null?}\PY{+w}{ }\PY{n}{args}\PY{p}{)} \PY{+w}{ }\PY{p}{(}\PY{k}{begin}\PY{+w}{ }\PY{n+nb}{exp}\PY{+w}{ }\PY{k}{...}\PY{p}{)} \PY{+w}{ }\PY{p}{(}\PY{n+nb}{apply}\PY{+w}{ }\PY{p}{(}\PY{k}{begin}\PY{+w}{ }\PY{n+nb}{exp}\PY{+w}{ }\PY{k}{...}\PY{p}{)}\PY{+w}{ }\PY{n}{args}\PY{p}{)}\PY{p}{)}\PY{p}{)}\PY{p}{]} \PY{+w}{ }\PY{p}{[}\PY{p}{(}\PY{k}{\PYZus{}}\PY{+w}{ }\PY{p}{(}\PY{n}{x}\PY{+w}{ }\PY{n}{x1}\PY{+w}{ }\PY{k}{...}\PY{p}{)}\PY{+w}{ }\PY{n+nb}{exp}\PY{+w}{ }\PY{k}{...}\PY{p}{)} \PY{+w}{ }\PY{p}{(}\PY{k}{letrec}\PY{+w}{ }\PY{p}{(}\PY{p}{[}\PY{n}{rec}\PY{+w}{ }\PY{p}{(}\PY{k}{case\PYZhy{}lambda} \PY{+w}{ }\PY{p}{[}\PY{p}{(}\PY{p}{)}\PY{+w}{ }\PY{n}{rec}\PY{p}{]} \PY{+w}{ }\PY{p}{[}\PY{p}{(}\PY{n}{x}\PY{+w}{ }\PY{n}{x1}\PY{+w}{ }\PY{k}{...}\PY{p}{)}\PY{+w}{ }\PY{p}{(}\PY{k}{begin}\PY{+w}{ }\PY{n+nb}{exp}\PY{+w}{ }\PY{k}{...}\PY{p}{)}\PY{p}{]} \PY{+w}{ }\PY{p}{[}\PY{p}{(}\PY{n}{x}\PY{+w}{ }\PY{n}{x1}\PY{+w}{ }\PY{k}{...}\PY{+w}{ }\PY{o}{.}\PY{+w}{ }\PY{n+nb}{rest}\PY{p}{)}\PY{+w}{ }\PY{p}{(}\PY{n+nb}{apply}\PY{+w}{ }\PY{p}{(}\PY{n}{rec}\PY{+w}{ }\PY{n}{x}\PY{+w}{ }\PY{n}{x1}\PY{+w}{ }\PY{k}{...}\PY{p}{)}\PY{+w}{ }\PY{n+nb}{rest}\PY{p}{)}\PY{p}{]} \PY{+w}{ }\PY{p}{[}\PY{n}{fewer\PYZhy{}args} \PY{+w}{ }\PY{p}{(}\PY{k}{let}\PY{+w}{ }\PY{p}{(}\PY{p}{[}\PY{n}{waiting\PYZhy{}for\PYZhy{}more} \PY{+w}{ }\PY{p}{(}\PY{k}{lambda}\PY{+w}{ }\PY{p}{(}\PY{n}{rec}\PY{+w}{ }\PY{n}{fewer\PYZhy{}args}\PY{p}{)} \PY{+w}{ }\PY{p}{(}\PY{k}{lambda}\PY{+w}{ }\PY{n}{more\PYZhy{}args}\PY{+w}{ }\PY{p}{(}\PY{n+nb}{apply}\PY{+w}{ }\PY{n}{rec}\PY{+w}{ }\PY{p}{(}\PY{n+nb}{append}\PY{+w}{ }\PY{n}{fewer\PYZhy{}args}\PY{+w}{ }\PY{n}{more\PYZhy{}args}\PY{p}{)}\PY{p}{)}\PY{p}{)}\PY{p}{)}\PY{p}{]}\PY{p}{)} \PY{+w}{ }\PY{p}{(}\PY{n}{waiting\PYZhy{}for\PYZhy{}more}\PY{+w}{ }\PY{n}{rec}\PY{+w}{ }\PY{n}{fewer\PYZhy{}args}\PY{p}{)}\PY{p}{)}\PY{p}{]}\PY{p}{)}\PY{p}{]}\PY{p}{)} \PY{+w}{ }\PY{n}{rec}\PY{p}{)}\PY{p}{]} \PY{+w}{ }\PY{p}{[}\PY{p}{(}\PY{k}{\PYZus{}}\PY{+w}{ }\PY{p}{(}\PY{n}{x}\PY{+w}{ }\PY{n}{x1}\PY{+w}{ }\PY{k}{...}\PY{+w}{ }\PY{o}{.}\PY{+w}{ }\PY{n+nb}{rest}\PY{p}{)}\PY{+w}{ }\PY{n+nb}{exp}\PY{+w}{ }\PY{k}{...}\PY{p}{)} \PY{+w}{ }\PY{p}{(}\PY{k}{letrec}\PY{+w}{ }\PY{p}{(}\PY{p}{[}\PY{n}{rec}\PY{+w}{ }\PY{p}{(}\PY{k}{case\PYZhy{}lambda} \PY{+w}{ }\PY{p}{[}\PY{p}{(}\PY{p}{)}\PY{+w}{ }\PY{n}{rec}\PY{p}{]} \PY{+w}{ }\PY{p}{[}\PY{p}{(}\PY{n}{x}\PY{+w}{ }\PY{n}{x1}\PY{+w}{ }\PY{k}{...}\PY{+w}{ }\PY{o}{.}\PY{+w}{ }\PY{n+nb}{rest}\PY{p}{)}\PY{+w}{ }\PY{p}{(}\PY{k}{begin}\PY{+w}{ }\PY{n+nb}{exp}\PY{+w}{ }\PY{k}{...}\PY{p}{)}\PY{p}{]} \PY{+w}{ }\PY{p}{[}\PY{n}{fewer\PYZhy{}args} \PY{+w}{ }\PY{p}{(}\PY{k}{let}\PY{+w}{ }\PY{p}{(}\PY{p}{[}\PY{n}{waiting\PYZhy{}for\PYZhy{}more} \PY{+w}{ }\PY{p}{(}\PY{k}{lambda}\PY{+w}{ }\PY{p}{(}\PY{n}{rec}\PY{+w}{ }\PY{n}{fewer\PYZhy{}args}\PY{p}{)} \PY{+w}{ }\PY{p}{(}\PY{k}{lambda}\PY{+w}{ }\PY{n}{more\PYZhy{}args}\PY{+w}{ }\PY{p}{(}\PY{n+nb}{apply}\PY{+w}{ }\PY{n}{rec}\PY{+w}{ }\PY{p}{(}\PY{n+nb}{append}\PY{+w}{ }\PY{n}{fewer\PYZhy{}args}\PY{+w}{ }\PY{n}{more\PYZhy{}args}\PY{p}{)}\PY{p}{)}\PY{p}{)}\PY{p}{)}\PY{p}{]}\PY{p}{)} \PY{+w}{ }\PY{p}{(}\PY{n}{waiting\PYZhy{}for\PYZhy{}more}\PY{+w}{ }\PY{n}{rec}\PY{+w}{ }\PY{n}{fewer\PYZhy{}args}\PY{p}{)}\PY{p}{)}\PY{p}{]}\PY{p}{)}\PY{p}{]}\PY{p}{)} \PY{+w}{ }\PY{n}{rec}\PY{p}{)}\PY{p}{]} \PY{+w}{ }\PY{p}{[}\PY{p}{(}\PY{k}{\PYZus{}}\PY{+w}{ }\PY{n}{args}\PY{+w}{ }\PY{n+nb}{exp}\PY{+w}{ }\PY{k}{...}\PY{p}{)}\PY{+w}{ }\PY{p}{(}\PY{k}{lambda}\PY{+w}{ }\PY{n}{args}\PY{+w}{ }\PY{n+nb}{exp}\PY{+w}{ }\PY{k}{...}\PY{p}{)}\PY{p}{]}\PY{p}{)}\PY{p}{)} \PY{p}{(}\PY{k}{define\PYZhy{}syntax}\PY{+w}{ }\PY{n}{define\PYZhy{}curried} \PY{+w}{ }\PY{p}{(}\PY{k}{syntax\PYZhy{}rules}\PY{+w}{ }\PY{p}{(}\PY{p}{)} \PY{+w}{ }\PY{p}{[}\PY{p}{(}\PY{k}{\PYZus{}}\PY{+w}{ }\PY{p}{(}\PY{n}{f}\PY{+w}{ }\PY{o}{.}\PY{+w}{ }\PY{n}{args}\PY{p}{)}\PY{+w}{ }\PY{o}{.}\PY{+w}{ }\PY{n}{body}\PY{p}{)}\PY{+w}{ }\PY{p}{(}\PY{k}{define}\PY{+w}{ }\PY{n}{f}\PY{+w}{ }\PY{p}{(}\PY{n}{curried}\PY{+w}{ }\PY{n}{args}\PY{+w}{ }\PY{o}{.}\PY{+w}{ }\PY{n}{body}\PY{p}{)}\PY{p}{)}\PY{p}{]}\PY{p}{)}\PY{p}{)} \end{Verbatim}