• 0 Posts
  • 1 Comment
Joined 3 years ago
cake
Cake day: January 29th, 2024

help-circle
  • Okay, I do think this makes you sound crazy.

    I’m putting my question first before I rant about this cause I think I got way more into this response than is warranted.

    What problem does this design of just creating bespoke functions have that your design solves?

    def mean(numbers):
        return efficient calculation
    def normalization(numbers):
        return efficient calculation
    def geometric_mean(numbers):
        return efficient calculation
    
    

    Rant starts here:

    With your design, every time someone wants an average of a set of numbers, you’re reimplementing the actual logic. Then if someone forgets the +1 and writes:

    quotient_reduce(sum, lambda x,y: x, numbers)
    

    A bug is introduced that’s hard to spot in a review, won’t give an error, and is hard to write tests for. Turning the lambda to an enum meant to be passed around would solve a some of the accidental bugs, but keeps the interaction with the function more complicated.

    I really just don’t understand why you wouldn’t just write each efficient implementation as it’s own function and call it directly.