macros en LISP

Hello,

En regardant un peu ce qui se dit sur le ouebbe à propos du langage Julia je vois souvent vanter le fait qu'il a des "vraies macros comme LISP" (ici par exemple http://stats.stackexchange.com/a/25980/8402 ou là http://lambda-the-ultimate.org/node/4452)
Sauriez-vous expliquer pour quelqu'un assez nul en langage informatique ce que les macros LISP ont de si bien ?

Réponses

  • Bonsoir,
    Je ne sais pas ce que les macros Lisp ont de si bien, ce que j'appréciais dans Lisp c'est sa faculté de manipuler des objets des types les plus divers. On prend une fonction dans la main gauche, on la combine avec un vecteur dans la main droite et on obtient l'image du vecteur par la fonction... Idem l'image d'une fonction par une fonction etc. ...
    Rien d'étonnant.
    Ajoute à cela que les objets manipulés peuvent être anonymes et tu comprendra pourquoi des monuments du calcul symbolique ou de l'intelligence artificielle sont construits en Lisp.
    Ensuite, comme tout est en tout, j'ai connu jadis un interprète Lisp construit en C.
  • Hello Braun,

    Je crois que cet aspect de LISP qui est ainsi vanté est expliqué dans la vidéo "Metaprogramming and Macros".
    J'ai commencé à regarder hier soir mais je n'ai pas fini. J'ai vu Karpinsky montrer un exemple de fonctions Julia écrites par du code Julia. En R c'est possible aussi de faire ça (avec la fonction assign() pour ceux qui connaissent) mais à mon avis ça ne marche pas de la même façon et c'est une fonctionnalité très lourde dans R.
    Bref je me suis arrêté vers la moitié de la vidéo, je poursuivrai une autre fois.
  • Ah l'homoiconicité (:D
  • Bon j'ai regardé la suite mais ça m'a un peu saoulé. Quand il aborde les macros il se restreint à l'exemple de la macro qui retourne le temps d'exécution d'une expression. Ca ne m'a pas emporté mais c'est parce que je suis crevé et parce que j'ai pas encore assez assimilé le langage pour être capable de suivre. En tout cas ça m'a l'air vraiment très bon ce langage. Je vais essayer de m'y mettre doucement.
  • J'en profite pour demander:

    1) où peut-on télécharger lisp
    2) a-t-il de réels avantages sur caml?
    3) les outils téléchargeables sont-ils accompagnés d'un environnement de programmation simple qui permette de compiler des applications avec la même qualité que delphi par exemple (caml n'a pas ça, du moins facilement)?
    Aide les autres comme toi-même car ils sont toi, ils sont vraiment toi
  • Merci, mais je n'ai pu télécharger qu'un exe qui s'exécute en ligne de commande :S (peut-être ai-je été trop frileux et ai eu peur de tenter d'autres téléchargements). En tout cas, rien n'apparaissait de manière évidente comme un environnement convivial complet, à télécharger en une seule fois et faisant le même genre de chose que delphi avec pascal
    Aide les autres comme toi-même car ils sont toi, ils sont vraiment toi
  • Merci, je vais cliquer et te dirai (pas tout de suite)
    Aide les autres comme toi-même car ils sont toi, ils sont vraiment toi
  • Bonsoir,
    Normalement tu devrais t'en tirer avec Emacs + Slime... Même si l'ergonomie ne peut pas renier l'époque de WordStar et de CP/m.
    Pour ceux qui ne connaissent pas, ce devait être avant la naissance de Ubuntu.
  • [small]:-( précision: j'ai windows... comme OS[/small]
    Aide les autres comme toi-même car ils sont toi, ils sont vraiment toi
  • Linus Torvalds a écrit:
    A computer is like air conditioning – it becomes useless when you open Windows.
    Désolé, mais je présume que Emacs devrait pouvoir fonctionner sur plusieurs systèmes.
  • +1 (tu) (pour la blague)
    Aide les autres comme toi-même car ils sont toi, ils sont vraiment toi
Connectez-vous ou Inscrivez-vous pour répondre.