refine note on sections
[lambda.git] / topics / week1_advanced_notes.mdwn
index 560a1c4..c5e589f 100644 (file)
@@ -197,16 +197,18 @@ All of this only works with infix operators like `-`, `&` and `+`. You can't wri
 Can you guess what our shortcut for the last function will be? It's `( + )`. That
 expresses a function that takes two arguments `(x, y)` and evaluates to `x + y`.
 
 Can you guess what our shortcut for the last function will be? It's `( + )`. That
 expresses a function that takes two arguments `(x, y)` and evaluates to `x + y`.
 
-Wait a second, you say. Isn't that just what `+` does *already*? Why am I making a distinction between `+` and `(+)`? The difference is that bare `+` without any parentheses is an *infix* operator that comes between its arguments. Whereas when we wrap it with parentheses, it loses its special infix syntax and then just behaves like a plain variable denoting a function, like `swap`. Thus whereas we write:
+Wait a second, you say. Isn't that just what `+` does *already*? Why am I making a distinction between `+` and `( + )`? The difference is that bare `+` without any parentheses is an *infix* operator that comes between its arguments. Whereas when we wrap it with parentheses, it loses its special infix syntax and then just behaves like a plain variable denoting a function, like `swap`. Thus whereas we write:
 
     x + y
 
 if we want to use `( + )`, we have to instead write:
 
 
     x + y
 
 if we want to use `( + )`, we have to instead write:
 
-    (+) (x, y)
+    ( + ) (x, y)
 
 It may not be obvious now why this would ever be useful, but sometimes it will be.
 
 
 It may not be obvious now why this would ever be useful, but sometimes it will be.
 
-Confession: actually, what I described here diverges a *tiny* bit from what OCaml and Haskell do. They wouldn't really write `(+) (x, y)` like I just did. Instead they'd write `(+) x y`. We will look at the difference between these next week.
+All of these shorthands `(10 - )`, `( & ys)` and `( + )` are called "sections". I don't know exactly why.
+
+Confession: actually, what I described here diverges *a bit* from how OCaml and Haskell treat `( + )`. They wouldn't really write `( + ) (x, y)` like I did. Instead they'd write `( + ) x y`. We will look at the difference between these next week.