According to The Principle of Least Surprise (Principle of Least Astonishment, POLA)[1] there is should be a symmetry: either a function receives a single input value, and returns a single output value, or it may receive multiple values and return multiple values, any other combination is problematic.
The only advantage to multiple inputs - single output, is that it's resembling the math notation, but it also inherits all of its shortcomings, and obviosly it wasn't designed with computers in mind.
Same with function taking or returning 0 values (e.g. void).
Function receiving 0 inputs should be a constant.
Function returning 0 outputs, is a procedure with a side-effect, and should be implemented using a different construct.
The only advantage to multiple inputs - single output, is that it's resembling the math notation, but it also inherits all of its shortcomings, and obviosly it wasn't designed with computers in mind.
Same with function taking or returning 0 values (e.g. void).
Function receiving 0 inputs should be a constant.
Function returning 0 outputs, is a procedure with a side-effect, and should be implemented using a different construct.
---
1. https://en.wikipedia.org/wiki/Principle_of_least_astonishmen...