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`.
 
-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)
+    ( + ) (x, y)
 
 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.