There’s a difference between solving a problem where you’re 1) trying to figure out what to do. 2) Executing an algorithm. 3) Evaluating a closed form solution (Plugging the values into the equation, performing the operations, and seeing what the number is.)***
Names. If you’re writing a program, and you decide to give things (including functions/methods) names like the letters of the alphabet it’s hard for other people to understand what you’re doing. Including future you. As a math enthusiast I see the benefit of not having to generate names*, but teaching wise? I can see some benefits of merging/mixing. (What’s sigma notation? It’s a for loop.)
Functions. You can say f’ is the derivative of f. Or you can get into the fact that there are functions** that take other functions as arguments. You can focus narrowly on functions of one-variable. Or you can notice that + is a function that takes two numbers (just like *, /, ^).
*Like when your idea of what you’re doing /with something changes as you go and there’s no refactoring tool on paper to change the names all at the last minute. (Though paper feels pretty nice to work with. That technology is really ergonomic.)
**And that the word function has more than one meaning. There’s a bit of a difference between a way of calculating something and a lookup table.
***Also, seeing how things generalize can be easier with tools that can automatically check if the changes you’ve made have broken what you were making. (Writing tests.)
It seems like a useful idea on a lot of levels.
There’s a difference between solving a problem where you’re 1) trying to figure out what to do. 2) Executing an algorithm. 3) Evaluating a closed form solution (Plugging the values into the equation, performing the operations, and seeing what the number is.)***
Names. If you’re writing a program, and you decide to give things (including functions/methods) names like the letters of the alphabet it’s hard for other people to understand what you’re doing. Including future you. As a math enthusiast I see the benefit of not having to generate names*, but teaching wise? I can see some benefits of merging/mixing. (What’s sigma notation? It’s a for loop.)
Functions. You can say f’ is the derivative of f. Or you can get into the fact that there are functions** that take other functions as arguments. You can focus narrowly on functions of one-variable. Or you can notice that + is a function that takes two numbers (just like *, /, ^).
*Like when your idea of what you’re doing /with something changes as you go and there’s no refactoring tool on paper to change the names all at the last minute. (Though paper feels pretty nice to work with. That technology is really ergonomic.)
**And that the word function has more than one meaning. There’s a bit of a difference between a way of calculating something and a lookup table.
***Also, seeing how things generalize can be easier with tools that can automatically check if the changes you’ve made have broken what you were making. (Writing tests.)