cours/coconut-lang.md
oscar.plaisant@icloud.com 38fbb1938d from github to this gitea
2023-10-23 23:09:51 +02:00

1.4 KiB

up::langage de programmation title::"surcouche de python plus fonctionnelle. Pratique pour tester des choses rapidement." #informatique


Langage de programmation : surcouche de python plus fonctionnelle

Exemples

Fonctions Lambda

La syntaxe des fonctions lambda est améliorée

lambda x: 4 * x   # multiplication par 4
(x -> 4 * x)  # même chose 

Composer des fonctions

Composition simple

la fonction square_plus_1 correspond à x -> 1 + x**2

square = x -> x**2
plus_1 = x -> x+1
square_plus_1 = plus_1 .. square

La composition est faîte avec .. et suit l'ordre mathématique de composition : (f \circ g)(x) = f(g(x))

Application partielle de fonction

Cette fonction met au carré chacun de ses arguments

square_all = list .. map$(x -> x**2)

Chaîner des fonctions

Calcul de \pi avec \sum\limits_{k=1}^{n} \left(\frac{1}{k^{2}}\right) = \dfrac{\pi^{2}}{6}, soit \pi = \sqrt{ 6\times\sum\limits_{k=1}^{n} \left(\frac{1}{k^{2}}\right)}

range(1, n) |> map$(k -> 1/k**2) |> sum |> list |> print
  • on utilise |> pour chaîner des fonctions
  • on utilise k -> 1/k**2 pour définir une fonction anonyme (lambda k: 1/k**2)
  • on utilise l'application partielle de fonction pour intégrer dans la chaîne de fonctions

Gestion des itérables

On peut utiliser l'opérateur :: (cons) pour chaîner des itérables