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 ...
|
-- ... 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:
|
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}
|
```Haskell {linenos=table}
|
||||||
addToAll n xs = map (addSingle n) xs
|
addToAll n xs = map (addSingle n) xs
|
||||||
addSingle n x = n + x
|
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`
|
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," >}}
|
{{< 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>
|
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