<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">Le 22 mars 2014 18:22, Stéphane Payrard <span dir="ltr"><<a href="mailto:cognominal@gmail.com" target="_blank">cognominal@gmail.com</a>></span> a écrit :<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Pour certains langages, outre les fonctions, les types et les types de types (kinds en anglais) sont aussi des valeurs.<div>
C'est le cas pour les langages fonctionnels à typage dépendant comme idris.<br><div>C'est aussi nécessaire pour des langages qui supportent la réflexion : <a href="http://fr.wikipedia.org/wiki/R%C3%A9flexion_(informatique)" target="_blank">http://fr.wikipedia.org/wiki/R%C3%A9flexion_(informatique)</a></div>

<div>Les types comme valeur sont notamment nécessaires pour les  langages qui incluent un métamodèle.  Cela permet d'implémenter différents modèles objet, de décrire le format des valeurs en mémoire selon leur type, de sérialiser les données et d'interragir avec des bibliothéques externes. </div>

<div>Ainsi une fonction est décrite en partie par sa signature qui décrit le type des paramètres et de celui de la valeur de retour. Via la réflexion, la signature est accessible comme une valeur de type Signature.</div>
C'est un des points forts de Perl 6 et plus particulièrement d'un des VM backend de son compilateur rakudo : moarvm.</div>
<div><br><div><a href="http://perl6advent.wordpress.com/2011/12/14/meta-programming-what-why-and-how/" target="_blank">http://perl6advent.wordpress.com/2011/12/14/meta-programming-what-why-and-how/</a><br></div><div><a href="http://www.jnthn.net/papers/2013-yapceu-moarvm.pdf" target="_blank">http://www.jnthn.net/papers/2013-yapceu-moarvm.pdf</a><br>

</div><div><a href="https://github.com/jnthn/zavolaj/blob/master/README.markdown" target="_blank">https://github.com/jnthn/zavolaj/blob/master/README.markdown</a><br></div><div><br></div><div>Mais on sort du fonctionnel et on entre dans la caractérisation des langages modernes en général.</div>

<div>Il est néanmoins intéressant de constater qu'avec Scala ou Perl 6 le fonctionnel devient un paradigme parmi d'autres dans des langages génériques et de comprendre comment il s'y intègre.<br></div></div></blockquote>
</div><br></div><div class="gmail_extra">Intéressant.<br></div><div class="gmail_extra">Je vais peut-être dire une bêtise, mais il me semble que la seule manière de manipuler Haskell depuis Haskell (faire de la réflexion) est d'utiliser les templates. Est-ce qu'il y a une explication sur le fait que ça ne soit pas plus intégrer ? (on me vante beaucoup la grande simplicité des macro de lisp par exemple)<br>
<br></div><div class="gmail_extra">PS : j'ai conscience du faire que ce soit extrêmement provocateur, mais ce n'est pas mon but, je cherche juste à avoir une meilleure vue d'ensemble, toutes corrections/explications/éclaircissements(/insultes, mais pas trop) sont les bienvenues.<br>
</div></div>