Êtes-vous un étudiant de l'EPFL à la recherche d'un projet de semestre?
Travaillez avec nous sur des projets en science des données et en visualisation, et déployez votre projet sous forme d'application sur Graph Search.
, le guillemet inversé). Il constitue de ce fait un langage Turing-complet et comporte en outre quelques fonctions d'E/S permettant une interaction avec l'utilisateur, diverses fonctions de raccourcis et une fonction d'évaluation paresseuse. En raison de sa nature de langage de programmation exotique, Unlambda est plus une démonstration de programmation fonctionnelle poussée à l’extrême qu’un langage utilisable à des fins pratiques. Sa caractéristique principale est son manque d’opérateurs conventionnels et de variables typées. Le seul type de données utilisable est constitué par des fonctions à un seul paramètre. L’utilisateur peut cependant simuler d’autres données en appelant des fonctions adéquates, comme en lambda-calcul. Les fonctions à plusieurs paramètres peuvent être représentées grâce à la technique de la curryfication. Le langage Unlambda s’appuie sur les principes de la logique combinatoire, notamment en ce qui concerne l’élimination de toutes les variables en mémoire ainsi que des fonctions. Comme il s’agit d’un langage purement fonctionnel, non seulement les fonctions d’Unlambda sont des objets de première classe, mais ce sont de plus les seuls. Une version du Hello world en Unlambda peut être :
r```````````.H.e.l.l.o. .w.o.r.l.di
La notation indique une fonction prenant un argument et le retournant inchangé, avec pour effet secondaire d’afficher le caractère x lorsqu’on l’appelle. est une version de la fonction identité qui ne présente pas cet effet secondaire. On l’utilise donc comme un paramètre fictif. Le code applique l’affichage de à l’argument fictif , renvoie et affiche ce faisant. De façon similaire, applique d’abord à , affichant et retournant , qui est ensuite appliqué à comme dans l’exemple précédent.