diff --git a/VL2/content/VL2_currying3.tex b/VL2/content/VL2_currying3.tex index 86174ef..e106c40 100644 --- a/VL2/content/VL2_currying3.tex +++ b/VL2/content/VL2_currying3.tex @@ -3,16 +3,21 @@ $f(x, y) = y / x$ \vspace{\baselineskip} \\ \pause -\ifger{Um diese Funktion für $x = 2$ und $y = 3$ zu berechnen würden wir einfach einsetzen:}{In order to evaluate the function for $x = 2$ and $y = 3$ we would do:}\\ -$f(2, 3) = 3 / 2$\\ -\ifger{und fertig sein.}{and be done.} +\ifger{Um diese Funktion für $x = 2$ und $y = 3$ zu berechnen würden wir normalerweise einfach einsetzen:}{In order to evaluate the function for $x = 2$ and $y = 3$ we would usually just do:}\\ +$f(2, 3) = 3 / 2$ \vspace{\baselineskip} \\ \pause -\ifger{Allerdings, wie wäre es wenn wir nur für $x$ einsetzen und dadurch eine neue Funktion definieren. Da $x$ weg ist, können wir schreiben:}{However, how about we just put in $x$ first and make a new function. Since $x$ is gone, we can write:}\\ -$g(y) = f(2, y) = y / 2$ +\ifger{Allerdings, wie wäre es wenn wir daraus eine Funktion mit nur dem Argument $x$ formulieren:}{However, how about we first make a function that only has $x$ as an argument:}\\ +$h(x) = y \mapsto f(x, y)$\\ +\ifger{Dies ist bereits die curried Variante von $f$!}{This is a curried version of $f$!} \vspace{\baselineskip} \\ \pause -\ifger{Und erst in einem zweiten Schritt lösen wir die Gleichung indem wir $y$ in $g(y)$ einsetzen:}{And in a second step we solve the function $g(y)$:}\\ +\ifger{Wenn wir jetzt für $x = 2$ einsetzen, können wir eine weitere Funktion definieren:}{If we fix $x = 2$ we can make another function:}\\ +$g(y) = h(2) = y \mapsto f(2, y) = y / 2$ +\vspace{\baselineskip} +\\ +\pause +\ifger{Und erst im letzten Schritt lösen wir die Gleichung indem wir $y$ in $g(y)$ einsetzen:}{And in the last step we solve the function $g(y)$:}\\ $g(3) = f (2, 3) = 3 / 2$ \ No newline at end of file diff --git a/VL2/content/VL2_currying4.tex b/VL2/content/VL2_currying4.tex index bcd8c14..c6e937d 100644 --- a/VL2/content/VL2_currying4.tex +++ b/VL2/content/VL2_currying4.tex @@ -1,7 +1,5 @@ \ifger{Wir können uns das ganze auch geometrisch vorstellen:}{You can also imagine this geometrically:}\\ -$z = f(x, y)$ \ifger{ist}{is} 3-dimensional. \ifger{Wenn wir für die Variable $x$ einsetzen bekommen wir im Grunde eine 2-dimensionale Funktion (die Schnittebene). Wenn wir dann für $y$ einsetzen, bekommen wir den eigentlich Punkt $z$.}{If you fix the variable $x$ you'll make things 2-dimensional (the intersecting plane). If you then fix $y$ you'll get an actual point $z$.} -\vspace{\baselineskip} -\\ -\includegraphics*[scale=0.4]{./images/Grafico_3d_x2+xy+y2.png} -\\ +$z = f(x, y)$ \ifger{hat eine 2-dimensionale Definitionsmenge}{has a 2-dimensional set of definitions}. \ifger{Wenn wir für die Variable $y$ einsetzen legen wir quasi die Schnittebene fest und bekommen als Funktion die Schnittkurve (1-dimensionale Definitionsmenge). Die Schnittkurve $s(x) = f(x, y)|_{y = 1}$ können wir jetzt durch einsetzen von $x$ auswerten, um $z$ zu berechnen.}{If we fix the variable $y$, then we've defined the intersecting plane and get a function for the intersection curve $s(x) = f(x, y)|_{y = 1}$ (1-dimensional set of definitions). If we fix $x$ here, we'll get our $z$.}\\ +\includegraphics*[width=0.5\textwidth]{./images/Grafico_3d_x2+xy+y2.png} +\vspace{\baselineskip}\\ \ifger{Für jeden dieser Schritte können wir eine echte neue Funktion definieren. Das funktioniert mit einer beliebigen Anzahl von Dimensionen/Argumenten.}{For every of these steps we can define a real new function. This scales up to any number of dimensions/arguments.} \ No newline at end of file diff --git a/VL2/content/VL2_currying7.tex b/VL2/content/VL2_currying7.tex index 900b0e3..e0c81f7 100644 --- a/VL2/content/VL2_currying7.tex +++ b/VL2/content/VL2_currying7.tex @@ -1,4 +1,4 @@ -\ifger{Wie am Anfang dieses Kapitels bereits gesagts sind diese beiden Funktionen sehr ähnlich:}{As said in the beginning of this section, these two look pretty similar:} +\ifger{Wie am Anfang dieses Kapitels bereits gesagt sind diese beiden Funktionen sehr ähnlich:}{As said in the beginning of this section, these two look pretty similar:} \begin{haskellcode} f :: Int -> Int -> Int