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

added more Haskell examples

This commit is contained in:
Martin Thoma 2014-09-09 19:47:05 +02:00
parent 14e4f1b8cb
commit 9fa7cdfea0
4 changed files with 26 additions and 2 deletions

View file

@ -64,7 +64,7 @@ Zu lesen ist die Deklaration wie folgt:
\todo[inline]{Gibt es Funktionsdeklarationen, die bis auf Wechsel des Namens und der Reihenfolge äquivalent sind?}
\subsection{if / else}
\subsection{if / else}\xindex{Haskell!if@\texttt{if}}
Das folgende Beispiel definiert den Binomialkoeffizienten (vgl. \cref{bsp:binomialkoeffizient}):
\inputminted[numbersep=5pt, tabsize=4]{haskell}{scripts/haskell/binomialkoeffizient.hs}
@ -127,6 +127,21 @@ in etwa folgendem Haskell-Code:
\inputminted[numbersep=5pt, tabsize=4]{haskell}{scripts/haskell/pythagorean-triples.hs}
\end{beispiel}
\begin{beispiel}[List-Comprehension]
Das folgende Beispiel zeigt, wie man die unendlich große Menge
\[\Set{p^i | p \text{ Primzahl}, 1 \leq i \leq n}\]
erstellt:
\inputminted[numbersep=5pt, tabsize=4]{haskell}{scripts/haskell/primepowers.hs}
Dabei ist die Reihenfolge wichtig. Würde man zuerst die \verb+i+ und dann
die Primzahlen notieren, würde Haskell versuchen erst alle Primzahlen durch
zu gehen. Da dies eine unendliche Liste ist, würde also niemals die zweite
Potenz einer Primzahl auftauchen.
\end{beispiel}
\subsection{Strings}
\begin{itemize}
\item Strings sind Listen von Zeichen:\\
@ -155,7 +170,7 @@ folgenden Zeilen äquivalent:
Das doppelte Plus (\texttt{++}) wird verwendet um Listen mit einander zu verbinden.
\subsection{Logische Operatoren}
\subsection{Logische Operatoren}\xindex{Haskell!Logische Operatoren}
\begin{table}[H]
\centering
@ -229,6 +244,10 @@ Haskell wertet Ausdrücke nur aus, wenn es nötig ist.
\end{beispiel}
\section{Beispiele}
\subsection{Primzahlsieb}\xindex{Primzahlsieb}%
\inputminted[linenos, numbersep=5pt, tabsize=4, frame=lines, label=primzahlsieb.hs]{haskell}{scripts/haskell/primzahlsieb.hs}
\subsection{Quicksort}\xindex{filter (Haskell)@\texttt{filter} (Haskell)}%
\inputminted[linenos, numbersep=5pt, tabsize=4, frame=lines, label=qsort.hs]{haskell}{scripts/haskell/qsort.hs}

View file

@ -0,0 +1 @@
let primepowers n = [p^i |p<-primes, i<-[1..n]]

View file

@ -0,0 +1,4 @@
primes::[Integer]
primes = sieve [2..] where
sieve (p:xs) = p:sieve [x | x <- xs,
x `mod` p > 0]