Accueil Blog Contact
fil RSSAbonnez-vous via RSS

Entrées récentes

Archives

Un framework Web en Scheme

Depuis quelques semaines, j'ai quelques ennuis avec ma plateforme de blog. En fait, depuis quelques temps, je mets au point un "framework" de dévelopment Web basé sur le language Scheme.

Il s'agit d'un language fonctionnel très simple, mais très évolué. Le fait de pouvoir manipuler des fonctions comme des objects est très pratique. Le moteur de motif pour générer des pages HTML ou XML ou simplement du texte utilise pleinement cette fonctionnalité. C'est très simple et efficace. Il n'y a pas besoin de comprendre l'héritage de motif ou d'introduire d'autre principe comme de l'héritage de classe.

Pour donner un aperçu. Un motif est une fonction. Lorsqu'elle est appelée, elle écrit son texte. Pour ajouter de la souplesse, on peut par exemple passer le titre de la page en paramètre. Relativement simple. Un moteur de motif devrait permettre plus. L'utilisation classique est d'avoir un motif pour le design général d'une page et d'avoir le contenu variable. Pour réaliser cela, on définit une fonction qui prend comme paramètre le titre de la page à générer et un deuxième paramètre qui est une fonction qui produit le contenu. En Javascript, ça donne:

  function design_de_base(titre, contenu) {
    document.write("<html><head><title>") ;
    document.write(titre) ;
    document.write("</title></head><body>") ;
    contenu() ;
    document.write("</body></html>") ;
  }
La version Scheme est:
  (define (design-de-base titre contenu)
    (display "<html><head><title>">)
    (display title)
    (display "</title></head><body>")
    (contenu)
    (display "</body></html>"))
Ensuite, il suffit d'utiliser cette fonction avec les bons paramètres. Un premier exemple avec la page de bienvenue d'un site.
  design_de_base("Page de bien venue", 
                 function () { 
                   document.write("Welcome sur mon site...") ;
                 }) ;
Un deuxième exemple pour afficher un article
  design_de_base("Ceci est le titre de mon article", 
                 function () { 
                   document.write("Mon article commence comme ceci...") ;
                 }) ;
Par un simple jeu de fonction passé en paramètre, on peut simplement et librement composer les pages voulues. Simple non ?

Commentaires

Ajouter un commentaire

Nom: requis
URL: (optionel)
Mail: requis (mais ne sera jamais affiché en public)
97+4= basic human verification