|
@@ -94,10 +94,12 @@ hat einen Speicherverbrauch von $\mathcal{O}(n)$. Durch einen
|
|
|
\item \texttt{head list} gibt den Kopf von \texttt{list} zurück,
|
|
|
\texttt{tail list} den Rest:
|
|
|
\inputminted[numbersep=5pt, tabsize=4]{haskell}{scripts/haskell/list-basic.sh}
|
|
|
- \item \texttt{null list} prüft, ob \texttt{list} leer ist.
|
|
|
+ \item \texttt{last [1,9,1,3]} gibt 3 zurück.
|
|
|
\item \texttt{length list} gibt die Anzahl der Elemente in \texttt{list} zurück.
|
|
|
\item \texttt{maximum [1,9,1,3]} gibt 9 zurück (analog: \texttt{minimum}).
|
|
|
- \item \texttt{last [1,9,1,3]} gibt 3 zurück.
|
|
|
+ \item \texttt{null list} prüft, ob \texttt{list} leer ist.
|
|
|
+ \item \texttt{take 3 [1,2,3,4,5]} gibt \texttt{[1,2,3]} zurück.
|
|
|
+ \item \texttt{drop 3 [1,2,3,4,5]} gibt \texttt{[4,5]} zurück.
|
|
|
\item \texttt{reverse [1,9,1,3]} gibt \texttt{[3,1,9,1]} zurück.
|
|
|
\item \texttt{elem item list} gibt zurück, ob sich \texttt{item} in \texttt{list} befindet.
|
|
|
\end{itemize}
|
|
@@ -105,7 +107,7 @@ hat einen Speicherverbrauch von $\mathcal{O}(n)$. Durch einen
|
|
|
\subsubsection{Beispiel in der interaktiven Konsole}
|
|
|
\inputminted[numbersep=5pt, tabsize=4]{haskell}{scripts/haskell/listenoperationen.sh}
|
|
|
|
|
|
-\subsubsection{List-Comprehensions}\xindex{List-Comprehension}
|
|
|
+\subsubsection{List-Comprehensions}\xindex{List-Comprehension}%
|
|
|
List-Comprehensions sind kurzschreibweisen für Listen, die sich an
|
|
|
der Mengenschreibweise in der Mathematik orientieren. So entspricht
|
|
|
die Menge
|
|
@@ -116,6 +118,13 @@ die Menge
|
|
|
in etwa folgendem Haskell-Code:
|
|
|
\inputminted[numbersep=5pt, tabsize=4]{haskell}{scripts/haskell/list-comprehensions.sh}
|
|
|
|
|
|
+\begin{beispiel}[List-Comprehension]
|
|
|
+ Das folgende Beispiel zeigt, wie man mit List-Comprehensions die unendliche
|
|
|
+ Liste aller pythagoreischen Tripels erstellen kann:
|
|
|
+
|
|
|
+ \inputminted[numbersep=5pt, tabsize=4]{haskell}{scripts/haskell/pythagorean-triples.hs}
|
|
|
+\end{beispiel}
|
|
|
+
|
|
|
\subsection{Strings}
|
|
|
\begin{itemize}
|
|
|
\item Strings sind Listen von Zeichen:\\
|
|
@@ -227,9 +236,9 @@ wird wie folgt erzeugt:
|
|
|
|
|
|
\inputminted[linenos, numbersep=5pt, tabsize=4, frame=lines, label=lauflaengencodierung.hs]{haskell}{scripts/haskell/lauflaengencodierung.hs}
|
|
|
|
|
|
-\subsection{Intersections}\xindex{Intersections}%
|
|
|
+\subsection{Intersections}\xindex{Intersections}\xindex{List-Comprehension}%
|
|
|
|
|
|
-\inputminted[linenos, numbersep=5pt, tabsize=4, frame=lines, label=Intersect.hs]{haskell}{scripts/haskell/Intersect.hs}
|
|
|
+\inputminted[linenos, numbersep=5pt, tabsize=4, frame=lines, label=intersect.hs]{haskell}{scripts/haskell/intersect.hs}
|
|
|
|
|
|
\subsection{Funktionen höherer Ordnung}\xindex{Folds}\xindex{foldl}\xindex{foldr}\label{bsp:foldl-und-foldr}
|
|
|
\inputminted[linenos, numbersep=5pt, tabsize=4, frame=lines, label=folds.hs]{haskell}{scripts/haskell/folds.hs}
|