Kaynağa Gözat

Fix/improve currying slides

master
Julian Ospald 5 yıl önce
ebeveyn
işleme
c55b90e184
Veri tabanında bu imza için bilinen anahtar bulunamadı GPG Anahtar Kimliği: 220CD1C5BDEED020
3 değiştirilmiş dosya ile 15 ekleme ve 12 silme
  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 Dosyayı Görüntüle

@@ -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$

+ 3
- 5
VL2/content/VL2_currying4.tex Dosyayı Görüntüle

@@ -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.}

+ 1
- 1
VL2/content/VL2_currying7.tex Dosyayı Görüntüle

@@ -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



Yükleniyor…
İptal
Kaydet