Clojure est un langage de programmation fonctionnelle compilée, multi-plateforme et destiné à la création de programmes sûrs et facilement distribuables. C’est un dialecte de Lisp. Il transpile vers du bytecode Java, du code JavaScript et du bytecode .NET. Clojure est donc disponible sur la JVM, le CLR, les navigateurs et Node.js.
vignette|Rich Hickey, créateur de Clojure
Rich Hickey est le créateur du langage Clojure. Avant Clojure, il a développé dotLisp, un projet similaire basé sur la plate-forme .NET, et trois tentatives antérieures pour assurer l'interopérabilité entre Lisp et Java : une "interface Java en langue étrangère pour Common Lisp" (Java foreign language interface for Common Lisp, jfli), une "interface pour objets étrangers pour Lisp" (Foreign Object Interface for Lisp, FOIL) et une "interface conviviale pour Lisp pour les servlets Java" (Lisp-friendly interface to Java Servlets, Lisplets).
Hickey a passé environ deux ans et demi à travailler sur Clojure avant de le rendre public, une grande partie de ce temps travaillant exclusivement sur Clojure sans aucun financement extérieur. À la fin de cette période, Hickey a envoyé un courriel annonçant le langage à quelques amis de la communauté Common Lisp.
Le processus de développement est mené par la communauté et est géré à la page du projet JIRA Clojure où les problèmes peuvent être soumis. Les discussions générales sur le développement se déroulent au sein du Clojure Google Group. Tout le monde peut soumettre des problèmes et des idées, mais pour contribuer aux correctifs, il faut signer le Clojure Contributor agreement. Les problèmes sur le JIRA sont traités par une équipe d'examinateurs et finalement Rich Hickey approuve les changements.
Le nom "Clojure", selon Hickey, est un jeu de mots sur le concept de "fermeture" dans la programmation (en anglais, closure), qui incorpore les lettres C, L et J pour C#, Lisp et Java respectivement - trois langages qui ont eu une influence majeure sur la conception de Clojure.
Cette page est générée automatiquement et peut contenir des informations qui ne sont pas correctes, complètes, à jour ou pertinentes par rapport à votre recherche. Il en va de même pour toutes les autres pages de ce site. Veillez à vérifier les informations auprès des sources officielles de l'EPFL.
In computer programming, CAR (car) kɑr and CDR (cdr) (ˈkʌdər or ˈkʊdər) are primitive operations on cons cells (or "non-atomic S-expressions") introduced in the Lisp programming language. A cons cell is composed of two pointers; the car operation extracts the first pointer, and the cdr operation extracts the second. Thus, the expression (car (cons x y)) evaluates to x, and (cdr (cons x y)) evaluates to y.
Higher-order programming is a style of computer programming that uses software components, like functions, modules or objects, as values. It is usually instantiated with, or borrowed from, models of computation such as lambda calculus which make heavy use of higher-order functions. A programming language can be considered higher-order if components, such as procedures or labels, can be used just like data. For example, these elements could be used in the same way as arguments or values.
Rust est un langage de programmation compilé multi-paradigme conçu et développé par Mozilla Research depuis 2010. Il a été conçu pour être « un langage fiable, concurrent, pratique », supportant les styles de programmation purement fonctionnel, modèle d'acteur, procédural, ainsi qu'orienté objet sous certains aspects. En 2020, ses domaines de prédilection sont la programmation système, les applications en ligne de commande, les applications Web via WebAssembly, les services réseaux et les systèmes embarqués.
This course provides students with a working knowledge of macroeconomic models that explicitly incorporate financial markets. The goal is to develop a broad and analytical framework for analyzing the
Learn how to design and implement reliable, maintainable, and efficient software using a mix of programming skills (declarative style, higher-order functions, inductive types, parallelism) and
fundam
This course will provide an introduction to model category theory, which is an abstract framework for generalizing homotopy theory beyond topological spaces and continuous maps. We will study numerous
Analyser les réponses de la politique monétaire et budgétaire à l’accumulation de la dette publique et l’impact du Covid-19 sur les économies mondiales.
Formal verification of real-world software systems remains challenging for a number of reasons, including lack of automation, friction in specifying properties, and limited support for the diverse programming paradigms used in industry. In this thesis we m ...
In this report we present the specification of the operational semantics of Dart Kernel and a reference implementation of Dart Kernel in Dart. We design a CESK-like machine to specify the operational semantics of Dart Kernel and we implement an interpreter ...
2017
,
Extracting value and insights from increasingly heterogeneous data sources involves multiple systems combining and consuming the data. With multi-modal and context-rich data such as strings, text, videos, or images, the problem of standardizing the data mo ...