Browse Source

Fix/improve currying slides

Julian Ospald 4 years ago
parent
commit
c55b90e184
No account linked to committer's email address
3 changed files with 15 additions and 12 deletions
  1. 11
    6
      VL2/content/VL2_currying3.tex
  2. 3
    5
      VL2/content/VL2_currying4.tex
  3. 1
    1
      VL2/content/VL2_currying7.tex

+ 11
- 6
VL2/content/VL2_currying3.tex View File

@@ -3,16 +3,21 @@ $f(x, y) = y / x$
3 3
 \vspace{\baselineskip}
4 4
 \\
5 5
 \pause
6
-\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:}\\
7
-$f(2, 3) = 3 / 2$\\
8
-\ifger{und fertig sein.}{and be done.}
6
+\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:}\\
7
+$f(2, 3) = 3 / 2$
9 8
 \vspace{\baselineskip}
10 9
 \\
11 10
 \pause
12
-\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:}\\
13
-$g(y) = f(2, y) = y / 2$
11
+\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:}\\
12
+$h(x) = y \mapsto f(x, y)$\\
13
+\ifger{Dies ist bereits die curried Variante von $f$!}{This is a curried version of $f$!}
14 14
 \vspace{\baselineskip}
15 15
 \\
16 16
 \pause
17
-\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)$:}\\
17
+\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:}\\
18
+$g(y) = h(2) = y \mapsto f(2, y) = y / 2$
19
+\vspace{\baselineskip}
20
+\\
21
+\pause
22
+\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)$:}\\
18 23
 $g(3) = f (2, 3) = 3 / 2$

+ 3
- 5
VL2/content/VL2_currying4.tex View File

@@ -1,7 +1,5 @@
1 1
 \ifger{Wir können uns das ganze auch geometrisch vorstellen:}{You can also imagine this geometrically:}\\
2
-$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$.}
3
-\vspace{\baselineskip}
4
-\\
5
-\includegraphics*[scale=0.4]{./images/Grafico_3d_x2+xy+y2.png}
6
-\\
2
+$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$.}\\
3
+\includegraphics*[width=0.5\textwidth]{./images/Grafico_3d_x2+xy+y2.png}
4
+\vspace{\baselineskip}\\
7 5
 \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.}

+ 1
- 1
VL2/content/VL2_currying7.tex View File

@@ -1,4 +1,4 @@
1
-\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:}
1
+\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:}
2 2
 \begin{haskellcode}
3 3
 f :: Int -> Int -> Int
4 4