AeriesGuard Le Refuge des Créateurs Minecraftiens !

:: Utilisateurs Réfugiés SpiceGuid ► Test de coloration du code Anubis

Version d'archive

  • Ce site est en lecture seule. Certains liens dynamiques peuvent ne pas fonctionner correctement.

Test de coloration du code Anubis

Message de test de la coloration du code Anubis.

Commençons par un petit dérivateur formel en Anubis :

// a simple formal derivator

// functions from R to R
public type RtoR :
   x,
   cst(Int),
   ~ RtoR,
   RtoR + RtoR,
   RtoR * RtoR,
   sin(RtoR),
   cos(RtoR),
   exp(RtoR).


// automagically generated
public type RtoR_recu($T) :
   recu
   (
      $T x,
      $T cst,
      ($T) -> $T neg,
      ($T,$T) -> $T add,
      (RtoR,$T,RtoR,$T) -> $T mul,
      (RtoR,$T) -> $T sin,
      (RtoR,$T) -> $T cos,
      (RtoR,$T) -> $T exp
   ).

// automagically generated
public define $T recu (RtoR f,RtoR_recu($T) d)
   =
if f is
{
   x then x(d),
   cst(z) then cst(d),
   ~ u    then neg(d)(recu(u,d)),
   u + v  then add(d)(recu(u,d),recu(v,d)),
   u * v  then mul(d)(u,recu(u,d),v,recu(v,d)),
   sin(u) then sin(d)(u,recu(u,d)),
   cos(u) then cos(d)(u,recu(u,d)),
   exp(u) then exp(d)(u,recu(u,d))
}.


public define RtoR deriv (RtoR f)
   =
recu
(
   f,
   recu
   (
      cst(0),
      cst(1),
      (RtoR du) |-> ~ du,
      (RtoR du,RtoR dv) |-> du + dv,
      (RtoR u,RtoR du,RtoR v,RtoR dv) |-> du * v + u * dv,
      (RtoR u,RtoR du) |-> du * cos(u),
      (RtoR u,RtoR du) |-> ~ du * sin(u),
      (RtoR u,RtoR du) |-> du * exp(u)
   )
).

J'attire l'attention du lecteur sur le fait que la fonction deriv n'est   pas directement récursive, nulle part dans son corps elle appelle la fonction  deriv !

En effet, toute la récursion est encapsulée dans le récurseur recu .

Le second exemple, à savoir les ensembles totalement ordonnés, illustre un ensemble plus complet de récurseurs : accu , fold , cata , recu et para .

Spoiler Afficher/Masquer

Le dernier exemple, à savoir un tax-maximum fusionnable, illustre le récurseur fuse .

Spoiler Afficher/Masquer

Je laisse le soin au lecteur de vérifier que les fonctions (assez avancées) de ces deux derniers exemples ne font appel à aucune récursion ni aucune itération.

au talentueux webmaster qui a implémenté la coloration OCaml , Anubis , Coq ainsi que la citation de code dans le texte, sur ma simple demande.  

Les derniers commentaires

Ertaï il y a plus de 12 ans

Je comprends encore moins que le Coq, mais c'est très joli biggrinking

:: Utilisateurs Réfugiés SpiceGuid ► Test de coloration du code Anubis