\begin{slide}{Funktionales Programmieren mit XSLT}

\begin{verbatim}
<xsl:template match="*" name="fun">
  <xsl:param name="x"/>
  <xsl:choose>
    <xsl:when test="0&lt;$x">
      <S>
      <xsl:call-template name="fun">
        <xsl:with-param name="x" select="$x -1"/>
      </xsl:call-template>
      </S>
    </xsl:when>
    <xsl:otherwise> <Z/> </xsl:otherwise>
  </xsl:choose>
</xsl:template>
\end{verbatim}
  
\end{slide}

\begin{slide}{Programmieren (Kommentar)}

\dots das ist ja ganz nett gemeint
(nur Funktionen/Konstanten, keine Prozeduren/Variablen/Zuweisungen),

aber softwaretechnisch furchtbar realisiert:

\begin{itemize}
\item 
groteske Syntax, komplizierte Parameterübergabe,
kein Typsystem, keine Datenstrukturen (außer Strings),
kein Modulsystem.
\item
das ist der typische (abschreckende) Fall 
einer domainspezifischen Sprache (DSL), 
die \emph{alleinstehend} ist
\item
\dots anstatt \emph{eingebettet} in eine Gastsprache,
deren Typ- und Modulsystem 
sowie Bibliotheken sie nutzen könnte
\end{itemize}

\end{slide}
