Fonction de haut niveau


Caio Guedes

Au cours de la programmation fonctionnelle avec Scala, j'ai vu deux formes de déclaration d'un fichier def. Mais je ne connais pas les différences entre eux, et le nom donné pour cela. Comment puis-je obtenir plus d'informations à ce sujet?

Déclaration 1

def sum(f: Int => Int)(a: Int, b: Int): Int = ???

Déclaration 2

def sum(f: Int => Int, a: Int, b: Int): Int = ???

pompe

La première est appelée la syntaxe curry.

Vous pouvez appliquer la fonction partiellement, ce qui entraîne le retour d'une nouvelle fonction.

scala> def sum(f: Int => Int)(a: Int, b: Int): Int = f(a) + f(b)
sum: (f: Int => Int)(a: Int, b: Int)Int

scala> sum({x: Int => x + 1}) _
res10: (Int, Int) => Int = $$Lambda$1115/108209958@474821de

La deuxième est la syntaxe non curry mais nous pouvons toujours appliquer la fonction partiellement même dans ce cas.

scala> def sum(f: Int => Int, a: Int, b: Int): Int = f(a) + f(b)
sum: (f: Int => Int, a: Int, b: Int)Int

scala> sum({x: Int => x + 1}, _: Int, _: Int)
res11: (Int, Int) => Int = $$Lambda$1116/1038002783@1a500561

Encore une fois une nouvelle fonction renvoyée lorsqu'elle est appliquée partiellement.

Il n'y a pas de différence entre les deux déclarations ci-dessus, c'est juste le sucre syntaxique.

Articles connexes


Comment appeler une fonction kotlin de haut niveau en java?

Chriss Supposons qu'une fonction kotlin est définie en dehors d'une classe en tant que fonction de niveau supérieur. Util.kt: class Util { fun bar() } fun foo(){} Comment puis-je appeler une méthode foo()en Java? Aasmund Eldhuset foosera compilé en une fon

Comment simuler une fonction de haut niveau Kotlin?

Niel de Wet: Mockk permet de se moquer des fonctions statiques, mais comment se moquer d'une fonction de niveau supérieur Kotlin? Par exemple, si j'ai un fichier Kotlin appelé HelloWorld.kt, comment puis-je me moquer de la sayHello()fonction? HelloWorld.kt fun

Fonctions de haut niveau Kotlin vs fonction objet

Vahan J'ai une fonction statique qui est limitée à un certain contexte, par exemple uniquement pour les documents. Il existe 2 façons de le définir comme fonction ou fonction de niveau supérieur dans un objet. 1. package com.armsoft.mtrade.data.pref import co

Fonction sass de haut niveau pour l'importation personnalisée

Sergey Troinin J'utilise SASS et je dois maintenant importer de nombreux partiels de différents endroits. Par exemple, je dois parfois écrire quelque chose comme ceci: @import '../../../global/static/src/sass/example'; Existe-t-il un moyen d'éviter la duplica

Optimisation Java de haut niveau

Sam Mohamed: Il existe de nombreuses questions et réponses et opinions sur la façon de faire une optimisation Java de bas niveau, avec des boucles for, while et do-while, et si c'est même nécessaire. Ma question est plutôt une optimisation de la conception bas

Fonctions de haut niveau Haskell

mac10688 J'ai un fichier Haskell ouvert sur le côté gauche de mon écran et ghci sur l'autre moitié. Je veux ajouter des fonctions au fichier, les enregistrer et les expérimenter dans ghci. Le problème est que je ne suis pas totalement sûr de savoir comment déc

Conception de haut niveau UberEats

andréotide Je m'entraîne pour l'entretien de conception de haut niveau pour un SDE 3-4. J'ai fait ce design pour UberEats et j'avais quelques questions. Les exigences fonctionnelles sont : Obtenir la liste des restaurants à proximité Obtenir des plats d'un res