Pour certains langages, outre les fonctions, les types et les types de types (kinds en anglais) sont aussi des valeurs.C'est le cas pour les langages fonctionnels à typage dépendant comme idris.C'est aussi nécessaire pour des langages qui supportent la réflexion : http://fr.wikipedia.org/wiki/R%C3%A9flexion_(informatique)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.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.C'est un des points forts de Perl 6 et plus particulièrement d'un des VM backend de son compilateur rakudo : moarvm.Mais on sort du fonctionnel et on entre dans la caractérisation des langages modernes en général.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.