2
0
Fork 0
mirror of https://github.com/MartinThoma/LaTeX-examples.git synced 2025-04-26 06:48:04 +02:00

Misc; E-Mail von Moritz

This commit is contained in:
Martin Thoma 2014-04-05 18:18:47 +02:00
parent 9c0864f122
commit 0508de3f6a
14 changed files with 122 additions and 16 deletions

View file

@ -1,3 +1,4 @@
%!TEX root = Programmierparadigmen.tex
\chapter{Prolog}
\index{Prolog|(}
@ -111,6 +112,44 @@ Weitere nützliche Standard-Listenprädikate sind:\xindex{sort(+List, -Sorted)@\
\underline{Hinweis}: \texttt{sort} entfernt Duplikate, \texttt{msort} hingegen nicht.
Eine Liste kann mit \texttt{rev/2}\xindex{rev/2@\texttt{rev/2}} umgedreht werden:
\inputminted[numbersep=5pt, tabsize=4]{prolog}{scripts/prolog/reverse-list.pl}
\subsection{Bäume}
Bäume können in Prolog wie folgt erstellt werden:
\inputminted[numbersep=5pt, tabsize=4]{prolog}{scripts/prolog/binary-tree-example.pl}
\begin{figure}[htp]
\centering
\input{figures/binary-tree.tex}
\caption{Binärbaum \texttt{T2}}
\label{fig:binary-tree-t2}
\end{figure}
Dabei ist
\begin{itemize}
\item \texttt{T0} der einzelne Knoten \texttt{a},
\item \texttt{T1} der Baum, der \texttt{a} als Wurzel und \texttt{b} und
\texttt{c} als Kinder hat,
\item \texttt{T2} ist in \cref{fig:binary-tree-t2} dargestellt und
\item \texttt{T3} ist der leere Baum.
\end{itemize}
Die folgenden Prädikate stammen von \url{https://sites.google.com/site/prologsite/prolog-problems/4}:
\subsection{Binärbaum-Check}
Das folgende Prädikate \texttt{istree/1} überprüft, ob es sich bei dem Parameter
um einen Binärbaum handelt:
\inputminted[numbersep=5pt, tabsize=4]{prolog}{scripts/prolog/istree.pl}
\subsection{Balancierte Binärbaumkonstruktion}
Das folgende Prädikate \texttt{cbal\_tree(n, T)} erstellt einen balancierten
Binärbaum mit \texttt{n} Knoten in \texttt{T}:
\inputminted[numbersep=5pt, tabsize=4]{prolog}{scripts/prolog/balancedtreeconstruction.pl}
\section{Beispiele}
\subsection{Humans}
Erstelle folgende Datei: