Bonjour à tous !
Je me mets tout doucement au Scala (et par la même occasion à la programmation fonctionnelle), et j'ai un problème de compréhension au niveau de ce code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 
package highOrderFunction
 
object Test 
{
  def main(args : Array[String]) : Unit = {
    println(apply(layout, 10))
  }
 
  /**
 * @param f fonction qui ? 
 * @param v un type int
 * @return la fonction f appliquée à la valeur v. 
 */
  def apply(f: Int=>String, v: Int) = f(v)
 
  def layout[A](x: A) : String = {
    "[" +x.toString() + "]"
  }
 
}
Je ne comprend pas ce qui signifie le morceaux :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
def apply(f: Int=>String, v: Int) = f(v)
Ni ce que signifie :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
def layout[A](x: A) : String = {
Ce que je pense avoir compris :
La fonction apply prend en paramètre une fonction f et une valeur v.
Elle applique ensuite la fonction à la valeur.

Mais je ne comprends pas bien la syntaxe des éléments mis en gras.

Quelqu'un pourrait-il m'expliquer ?

Merci d'avance les amis