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
A function is like a coffee machine
– 1 –
It needs inputs to work (arguments):
— water
— electricity
— ground coffee beans (or pods if so inclined)
You can choose to put different blends of coffee into your machine (choice of what argument to pass to function)
2/
— 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/
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
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/