2010-12-13 3 views
5

Une question simple ... Est-ce une bonne pratique de définir une fonction acceptant plus de 1 paramètre à travers des tuples?Définir les paramètres dans les fonctions F #, est-il préférable d'utiliser des tuples?

Je me expliquer mieux: J'ai une fonction:

let myfunc par1 par2 = ...;; 

Est-il bon de la sorte? Quand je dis «est-ce bon?» Je dis: est-ce une bonne pratique? est-ce bon de le faire TOUJOURS comme une pratique courante pour passer des paramètres à une fonction ??

Merci

Répondre

5

normal F # style est de définir des fonctions cari, à savoir non-uplées selon votre premier exemple.

Currying vous permet de le faire: (« application partielle »)

let myfunc par1 par2 = ... 
let myfuncHello = myfunc "Hello" 
myfuncHello "World" // same as: myfunc "Hello" "World" 

Cependant, si vous exposez votre code .NET langues autres que F #, le bâton avec Tupling, car il est difficile d'appeler des fonctions cari sauf à partir de F #.

Edit: de la nouvelle marque F # site Snippets: http://fssnip.net/I

+0

Ah ok ... maintenant je peux voir où est la notation uplées utile ... ah une question désolé: si la première est appelée notation curryfication? (Je ne peux toujours pas accepter votre réponse car je dois attendre 5 minutes :)). – Andry

+1

C'est vrai: dans la première notation, vous avez défini une fonction au curry; myfunc est curry. Lorsque vous l'appelez comme je l'ai fait dans ma réponse, vous l'avez partiellement appliqué. Ces termes sont généralement confondus: http://en.wikipedia.org/wiki/Currying#Contrast_with_partial_function_application –

+0

Oui, je l'ai lu juste avant, c'est très cool currying ... Merci beaucoup. – Andry

Questions connexes