As it’s time for my morning coffee (the coffee not the biscuits), it’s as good a time as any to share my one of my favourite #programming analogies
(narrated from a #Python-viewpoint but general enough for #coding in general)
The Coffee Machine - Function analogy
Let’s make some coffee…
[read on]
/1
— 2 —
You press the "On" button—this is equivalent to calling the function.
You can almost see the similarity between the typical "On" button and the parentheses ( ) used to call a function in Python!
3/
— 4 —
When the coffee machine does its thing, hot, liquid coffee will emerge from the machine.
You could say the coffee machine _returns_ liquid coffee.
but, there's one problem…
5/
The coffee flows directly into the drainage tray at the bottom of the machine and will likely overflow, making a mess on your kitchen bench…
6/
You called the function like this:
>>> make_coffee(
... electricity,
... water,
... my_favourite_blend,
... )
and therefore, the coffee returned is not collected and stored in anything…
7/
Instead, you should put a coffee cup in the machine when you turn it on:
>>> cup = make_coffee(
... electricity,
... water,
... my_favourite_blend,
... )
Now, you no longer make a mess on the kitchen bench you’re collecting what’s returned into something
There’s a fuller version of this analogy here, too:
https://thepythoncodingbook.com/2022/09/14/functions-in-python-are-like-coffee-machines/
8/
Addendum (some sad news): Since taking those pictures for the article, that sole remaining espresso cup has suffered this fate
I was told I can’t say Rest In Pieces
@s_gruppetta good eye 👁
— 3 —
When you call the function/press the "On" button on the coffee machine, the machine will "do stuff" inside.
If you just care about drinking your coffee, you don't care what's happening inside the machine…
If you're an engineer building your own coffee machine, or you want to open up your coffee machine to fix it or—ahem—make improvements, then you _do_ care about what's happening inside the coffee machine.
4/