J'ai une question à laquelle je ne peux pas répondre moi-même, mais il me semble que c'est une question fondamentalement bonne à éclaircir :
Pourquoi certains langages limitent-ils les données retournées par une fonction à un seul élément ?
Est-ce que cela sert à quelque chose ? Ou s'agit-il d'une pratique importée des mathématiques ?
Un exemple étant (en Scala) :
def login(username: String, password: String): User
Si je voulais renvoyer plusieurs éléments, je ne pourrais pas le faire de la même manière que pour les arguments d'entrée (nous entrons maintenant dans le monde imaginaire de Scala).
def login(username: String, password: String): (User, Context, String)
Ou même avec des données nommées renvoyées :
def login(username: String, password: String): (user: User, context: Context, serverMessage: String)