diff --git a/documents/Programmierparadigmen/Haskell.tex b/documents/Programmierparadigmen/Haskell.tex index f7c6ae5..0c52afe 100644 --- a/documents/Programmierparadigmen/Haskell.tex +++ b/documents/Programmierparadigmen/Haskell.tex @@ -62,7 +62,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} -Das folgende Beispiel definiert den Binomialkoeffizienten (vgl. \cref{bsp:binomialkoeffizient}) +Das folgende Beispiel definiert den Binomialkoeffizienten (vgl. \cref{bsp:binomialkoeffizient}): \inputminted[numbersep=5pt, tabsize=4]{haskell}{scripts/haskell/binomialkoeffizient.hs} @@ -87,9 +87,9 @@ hat einen Speicherverbrauch von $\mathcal{O}(n)$. Durch einen \begin{itemize} \item \texttt{[]} erzeugt die leere Liste, \item \texttt{[1,2,3]} erzeugt eine Liste mit den Elementen $1, 2, 3$ - \item \texttt{:} wird \textbf{cons}\xindex{cons} genannt und ist + \item \texttt{:}\xindex{: (Haskell)} wird \textbf{cons}\xindex{cons} genannt und ist der Listenkonstruktor. - \item \texttt{list !! i} gibt das $i$-te Element von \texttt{list} zurück. + \item \texttt{list !! i}\xindex{"!"! (Haskell)} gibt das $i$-te Element von \texttt{list} zurück. \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} @@ -133,7 +133,7 @@ in etwa folgendem Haskell-Code: \subsection{Let und where}\xindex{let}\xindex{where}% \inputminted[numbersep=5pt, tabsize=4]{haskell}{scripts/haskell/let-where-bindung.hs} -\subsection{Funktionskomposition}\xindex{.}\xindex{Funktionskomposition}% +\subsection{Funktionskomposition}\xindex{. (Haskell)}\xindex{Funktionskomposition}% In Haskell funktioniert Funktionskomposition mit einem Punkt: \inputminted[numbersep=5pt, tabsize=4]{haskell}{scripts/haskell/function-composition.hs} @@ -145,6 +145,12 @@ und \texttt{i (-3)} ergibt Es ist also anzumerken, dass die Reihenfolge \underline{nicht} der mathematischen konvention entspricht. +\subsection{\$ (Dollar-Zeichen)}\xindex{\$ (Haskell)} +Das Dollar-Zeichen \$ dient in Haskell dazu Klammern zu vermeiden. So sind die +folgenden Zeilen äquivalent: + +\inputminted[numbersep=5pt, tabsize=4]{haskell}{scripts/haskell/dollar-example.hs} + \section{Typen} \subsection{Standard-Typen} Haskell kennt einige Basis-Typen: @@ -161,8 +167,8 @@ Haskell kennt einige Basis-Typen: Des weiteren gibt es einige strukturierte Typen: \begin{itemize} - \item Listen: z.~B. $[1,2,3]$ - \item Tupel: z.~B. $(1,'a',2)$ + \item Listen: z.~B. \texttt{[1,2,3]} + \item Tupel: z.~B. \texttt{(1,'a',2)} \item Brüche (Fractional, RealFrac) \item Summen-Typen: Typen mit mehreren möglichen Repräsentationen \end{itemize} diff --git a/documents/Programmierparadigmen/Programmierparadigmen.pdf b/documents/Programmierparadigmen/Programmierparadigmen.pdf index 8900551..daf5907 100644 Binary files a/documents/Programmierparadigmen/Programmierparadigmen.pdf and b/documents/Programmierparadigmen/Programmierparadigmen.pdf differ diff --git a/documents/Programmierparadigmen/scripts/haskell/dollar-example.hs b/documents/Programmierparadigmen/scripts/haskell/dollar-example.hs new file mode 100644 index 0000000..42cf554 --- /dev/null +++ b/documents/Programmierparadigmen/scripts/haskell/dollar-example.hs @@ -0,0 +1,3 @@ +putStrLn (show $ 1 - 2) +putStrLn $ show (1 - 2) +putStrLn $ show $ 1 - 2 \ No newline at end of file