Make minor edits to the content
This commit is contained in:
parent
85bd0b6c9c
commit
906e15674e
|
@ -91,11 +91,14 @@ addSingle6 x = 6 + x
|
|||
|
||||
-- ... and so on ...
|
||||
```
|
||||
|
||||
But now, we end up creating several functions with almost identical bodies, with the exception of the free variables themselves. Wouldn't it be better to perform the well-known strategy of reducing code duplication by factoring out parameters, and leaving only instance of the repeated code? We would end up with:
|
||||
|
||||
```Haskell {linenos=table}
|
||||
addToAll n xs = map (addSingle n) xs
|
||||
addSingle n x = n + x
|
||||
```
|
||||
|
||||
Observe that we no longer have the "infinite" number of functions - the infinitude of possible behaviors is created via currying. Also note that `addSingle`
|
||||
{{< sidenote "right" "global-note" "is now declared at the global scope," >}}
|
||||
Wait a moment, didn't we just talk about nested polymorphic definitions, and how they change our typechecking model? If we transform our program into a bunch of global definitions, we don't need to make adjustments to our typechecking. <br><br>
|
||||
|
|
Loading…
Reference in New Issue
Block a user