I've never made it a practice to use custom functions due to their breakage with updates, etc., but I do feel like this is an area that quite a few developers neglect, so maybe this thread can help more than just myself to get a solid understanding of this higher-level functionality.
Several of my Senior-level developer friends have put together some use-case scenarios (feel free to add some that you think are worth knowing) and I'd like to get your feedback on (a) if you would use a custom function for this and (b) the logic behind how you would write it.
I'll kick it off:
Create a custom function that is recursive, summing the numbers inclusively between 1 and the number specified. For example:
Summation ( 1 ) = 1
Summation ( 3 ) = 13
The function should return 0 for negative integers.