vidéo peertube - vidéo youtube - dépôt git

Curryfication et évaluation partielle (javascript/haskell)

Comment écrire des fonctions curryfiée et faire de l’évaluation partielle en Javascript et en Haskell.

rappels

exemple en Javascript

add = function(x, y) {
  return x + y
}
n = add(42, 2)
add42 = function(y) {
  return add(42, y)
}
n = add42(2)
add_curry = function(x) {
  return function(y) {
    return x + y
  }
}
n = add_curry(42, 2)
add42_curry = add_curry(42)
n = add42_curry(2)

exemple en Javascript ES6

add = (x, y) => x + y
n = add(42, 2)
add42 = (y) => add(42, y)
n = add42(2)
add_curry = x => y => x + y
n = add_curry(42, 2)
add42_curry = add_curry(42)
n = add42_curry(2)

exemple en Haskell

add (x,y) = x + y
n = add (42,2)
add42 y = add (42,y)
n = add42(2)
add_curry x y = x + y
n = add_curry(42, 2)
add42_curry = add_curry 42
n = add42_curry(2)