• [^] # Re: C'est bien dommage

    Posté par . En réponse au journal C++17 est sur les rails. Évalué à 2. Dernière modification le 18 mars 2016 à 19:52.

    Pour ce qui est de "défigurer" la syntaxe : en Lisp c'est facile, il n'y a "pas de syntaxe", juste les AST. C'est-à-dire qu'il n'y a rien à défigurer.

    Je suis d'accord que « défigurer » n'est pas du tout l'image qui correspond, et qu'au contraire, les extensions au langage en Lisp sont naturelles (peut-être même trop pour l'œil humain). Ceci dit, par contre, j'appelle syntaxe tout élément dont l'évaluation n'est pas prévisible, et les macros en font partie (contrairement aux fonctions dont la logique d'évaluation est connue). Le fait que l'apparence soit homogène en Lisp est utile pour faire des macros de façon intuitive et naturelle, mais ne change rien au fait que chaque macros apporte de la syntaxe. On peut avoir une syntaxe très folklorique (genre Perl), et pourtant que la syntaxe en soi ne soit pas très complexe (c'est plus le lexeur qui est compliqué), comme avoir une syntaxe plus homogène mais plus complexe. Et d'ailleurs, si pas au niveau de Lisp encore, OCaml n'a pas une syntaxe particulièrement simple non plus, il y a pas mal de choses dans ce langage, et de plus en plus. Et autant cela peut apporter du pouvoir d'expression et plein de trucs utiles, autant ça rend le langage moins accessible aussi (et pas qu'aux débutants, je pense).