title: Qi (langage)
text: # Qi (langage)
  
  Qi est un langage de programmation fonctionnelle créé par Mark Tarver, introduit en avril 2005 et distribué sous licence GPL. Qi est écrit en Lisp. Il inclut la plupart des fonctionnalités communes à la programmation fonctionnelle : le filtrage, la curryfication, inférence de types, typage statique, typage dynamique, la garde et l'application partielle. Ce langage a remporté en 2003, le prix Promising Invention Award de l'Université d'État de New York.
  
  ## La base du langage Qi
  
  Par certains côtés, Qi se veut une simplification du langage Lisp. Les fonctions utilisent la notation préfixée.
  
  Un programme qui affiche Hello World sur la sortie standard :
  
  Les listes se construisent avec [ .... ] et les éléments sont séparés par un caractère d'espace.
  
  La fonction factorielle définie en utilisant le filtrage :
  
  Une fonction anonyme qui multiplie par 2.
  
  Une fonction membre utilisant le filtrage sur les listes (Qi suit la syntaxe conventionnelle du Edinburgh Prolog pour le filtrage, sauf que des espaces sont utilisées au lieu de la virgule pour séparer les éléments).
  
  Une fonction utilisant la garde qui cherche le premier nombre plus grand que N dans une liste.
  
  ## Qi Prolog
  
  Qi Prolog est une version du langage Prolog mise en œuvre en Qi, en utilisant la syntaxe standard d'Edinburgh. Voici un exemple de base en Qi Prolog :
  
  Et pour interroger la base de connaissance Prolog :
  
  