additions in SystemF part

This commit is contained in:
Sheppy 2015-10-07 18:04:29 +02:00
parent 7f8bdddd7c
commit 7710fd65ac

View File

@ -31,10 +31,38 @@
& dann\;rechtes\;pow\\
& dann\;linkes\;pow
\end{align*}
\subsection{How to work with Lambda}
- Buchstabe hinter $\lambda $ wegnehmen\\
- Term von der respektiven Stelle hinten entfernen\\
- alle Vorkommen des Buchstabens mit dem Term ersetzen\\
- idealerweise bei mehreren $\lambda$ in einem Term \textbf{immer} verschiedene Buchstaben verwenden
\section{SS14-Probeklausur Beispielaufgabe}
\subsection*{1) Reduktion}
\subsubsection*{a) Normal/Lazy}
\begin{align*}
pow2\;three\; &=\; three\;(mult\;two)\;one\\
&=\; \lambda f\,a\, .\,f\,(\,f\,(\,f\;a\,)(\,mult\;two)\;one\\
&=\; \lambda a\, .\, (mult\;two)\,((mult\;two)\,((mult\;two)\;a\,)\;one\\
&=\; (mult\;two)\,((mult\;two)\,((mult\;two)\;one\,)
\end{align*}
\subsubsection*{b) Apllikativer Reihenfolge}
\begin{align*}
pow2\;three\; &=\; pow2\; (\, \lambda f\,a\, .\,f\,(\,f\,(\,f\;a\,) \,)\\
&=\; (\, \lambda f\,a\, .\,f\,(\,f\,(\,f\;a\,) \,)(mult\;two)\;one\\
&=\; (\, \lambda f\,a\, .\,f\,(\,f\,(\,f\;a\,) \,)(mult\;\lambda g\,b\, .\,g\,(\,g\;b\,))\;one\\
&=\; (\, \lambda f\,a\, .\,f\,(\,f\,(\,f\;a\,) \,)(mult\;\lambda g\,b\, .\,g\,(\,g\;b\,))\;(\lambda h\,c\, .\,h\;c)\\
\end{align*}
kleine Anmerkung hierzu noch:
\[
\underbrace{(\, \lambda f\,a\, .\,f\,(\,f\,(\,f\;a\,) \,)}_{oberste\;Funktion}
\underbrace{(mult\;\lambda g\,b\, .\,g\,(\,g\;b\,))}_{erstes\;Argument}
\;
\underbrace{(\lambda h\,c\, .\,h\;c)}_{zweites\;argument}
\]
d.h. wir w\"urden hier beim ersten Argument weitermachen und "mult" aufl\"osen
(beim zweiten g\"abe es gerade auch gar nichts mehr zu machen)
\subsection*{2) Typherleitung}