J'essaie de comprendre la curry en lisant différents blogs et en empilant des réponses de flow over et je pense avoir compris quoi. Dans Haskell, chaque fonction est cari, cela signifie que, lorsque vous avez une fonction comme f x y = x + y
il est vraiment ((f x) y)
dans ce domaine, la fonction d'abord prendre le premier paramètre « x » comme paramètre et applique partiellement à fonctionner f qui à son tour renvoie une fonction pour y. où il suffit d'un seul paramètre et applique la fonction. Dans les deux cas, la fonction ne prend qu'un seul paramètre et le processus de réduction d'une fonction pour prendre un seul paramètre s'appelle 'currying'. Corrigez-moi si ma compréhension est fausse ici.
Donc, si c'est correct, pourriez-vous s'il vous plaît me dire si les fonctions «deux» et «trois» sont des fonctions curry?
Le code suivant est-il réellement en cours de compilation?
three x y z = x + y + z
two = three 1
same = two 1
Dans ce cas, j'ai deux fonctions spécialisées, « deux » et « même » qui sont réduits à prendre un seul paramètre est-il si cari?
Vous pouvez le tester vous-même en utilisant la commande ': t' dans GHCi (': t three' affichera le type 'trois'). – Mephy
super, je ne le savais pas. Merci. – Nair
@JoshuaHannah - peut-être que vous voyez ça ici. Je sureley voulait dire aucune infraction ou pour vous de supprimer votre réponse - j'espérais juste que vous ajouteriez un peu d'informations utiles pour Nair - désolé homme – Carsten