From 7710fd65ac1519723298b5622aeb976c5cda6364 Mon Sep 17 00:00:00 2001 From: Sheppy Date: Wed, 7 Oct 2015 18:04:29 +0200 Subject: [PATCH] additions in SystemF part --- Public/thprog/SystemF.tex | 38 +++++++++++++++++++++++++++++++++----- 1 file changed, 33 insertions(+), 5 deletions(-) diff --git a/Public/thprog/SystemF.tex b/Public/thprog/SystemF.tex index 85c5a24..1ed656c 100644 --- a/Public/thprog/SystemF.tex +++ b/Public/thprog/SystemF.tex @@ -6,7 +6,7 @@ \title{System F und Reduktionsreihenfolge} \date{ } \begin{document} - \section{Generelles} + \section{Generelles} \subsection{Normale-/Lazy-Reduktion} - pre-order durch Baum ("von unten nach oben auswerten") \\ - leftmost-outermost\\ @@ -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}