Qi (langage)

Qi (langage)
Qi
Auteur Mark Tarver
Développeurs Mark Tarver et al.
Paradigmes fonctionnel, logique
Typage statique, dynamique
Influencé par Haskell, ML, Lisp, Prolog
Système d'exploitation Multi-plate-forme
Site web http://www.lambdassociates.org/

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 :

(output "Hello, world~%")

Les listes se construisent avec [ .... ] et les éléments sont séparés par un espace.

[76 trombones]

La fonction factorielle définie en utilisant le filtrage :

(define factorial
  0 -> 1
  N -> (* N (factorial (- N 1))))

Une fonction anonyme qui multiplie par 2.

(/. X (* X 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.)

(define member
 _ [] -> false
 X [X | _] -> true
 X [_ | Y] -> (member X Y))

Une fonction utilisant la garde qui cherche le premier nombre plus grand que N dans une liste.

(define find_greater
  N [] -> (error "no number greater than ~A.~%" N)
  N [M | _] -> M where (> M N)
  N [_ | Ns] -> (find_greater N Ns))

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:

(defprolog
  "dog(snoopy).
   man(socrates).
   man(plato).
   mortal(X) :- man(X).")

Et pour interroger la base de connaissance Prolog:

(ask [ man plato ] )
(ask [ man snoopy ] )
(ask [ dog X ] )
(ask [ man M ] )

Liens externes


Wikimedia Foundation. 2010.

Contenu soumis à la licence CC-BY-SA. Source : Article Qi (langage) de Wikipédia en français (auteurs)

Игры ⚽ Поможем решить контрольную работу

Regardez d'autres dictionnaires:

  • langage — [ lɑ̃gaʒ ] n. m. • v. 1160; lengatge v. 980; de langue I ♦ 1 ♦ Fonction d expression de la pensée et de communication entre les hommes, mise en œuvre au moyen d un système de signes vocaux (parole) et éventuellement de signes graphiques… …   Encyclopédie Universelle

  • LANGAGE (PHILOSOPHIES DU) — L’intérêt pour la langue est un trait dominant de la philosophie contemporaine. Non que nos contemporains soient les premiers à découvrir le langage. Celui ci a toujours été à la place d’honneur dans la philosophie, tant il est vrai que la… …   Encyclopédie Universelle

  • Langage De Programmation — Un langage de programmation est un langage informatique, permettant à un être humain d écrire un code source qui sera analysé par une machine, généralement un ordinateur. Le code source subit ensuite une transformation ou une évaluation dans une… …   Wikipédia en Français

  • Langage Humain — Le langage est la faculté de mettre en œuvre un système de signes linguistiques (qui constituent la langue) permettant la communication et l expression de la pensée, ce qui est privatif des humains, et des sentiments, ce qui est commun aux… …   Wikipédia en Français

  • Langage oral — Langage humain Le langage est la faculté de mettre en œuvre un système de signes linguistiques (qui constituent la langue) permettant la communication et l expression de la pensée, ce qui est privatif des humains, et des sentiments, ce qui est… …   Wikipédia en Français

  • Langage quotidien — Langage humain Le langage est la faculté de mettre en œuvre un système de signes linguistiques (qui constituent la langue) permettant la communication et l expression de la pensée, ce qui est privatif des humains, et des sentiments, ce qui est… …   Wikipédia en Français

  • Langage traditionnel — Langage humain Le langage est la faculté de mettre en œuvre un système de signes linguistiques (qui constituent la langue) permettant la communication et l expression de la pensée, ce qui est privatif des humains, et des sentiments, ce qui est… …   Wikipédia en Français

  • Langage Formel — Dans de nombreux contextes (scientifique, légal, etc.), on désigne par langage formel un mode d expression plus formalisé et plus précis (les deux n allant pas nécessairement de pair) que le langage de tous les jours (voir langage naturel). En… …   Wikipédia en Français

  • Langage sms — « Bonjour, ça va ? » écrit en langage SMS. Manifeste contre le langage SMS …   Wikipédia en Français

  • Langage texto — Langage SMS « Bonjour, ça va ? » écrit en langage SMS. Manifeste contre le langage SMS …   Wikipédia en Français

  • Langage Des Fleurs — Un bouquet savamment composé porte un message. Le don de fleurs existe dans la plupart des civilisations, qu il constitue un cadeau ou un acte religieux. Dans certaines cultures, on accorde aux fleurs une symbolique particulière, en donnant à… …   Wikipédia en Français

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”