Aller au menu - Aller au contenu

Le langage de programmation Clojure est disponible en version 1.2 !

Revenir à la liste des news
Participer à la discussion

Image

Informations

Contributeur(s) : acieroid, colbseton et Graphox
Publié : le 24/08/2010 à 05:00:00
Catégorie : Programmation
Visualisations : 13 005

Licence : Creative Commons BY SA

Le langage de programmation Clojure est disponible en [...]

Clojure, un langage de programmation, est maintenant disponible en version 1.2. Ce langage a hérité des traits fonctionnels d'Haskell, d'Erlang ou tout simplement de Lisp, une famille contenant des langages de programmation dits fonctionnels.
À l'occasion de la sortie de cette nouvelle version, nous en profitons pour vous présenter ce langage que certains d'entre vous ne connaissent peut-être pas, plutôt que de s'attarder sur les nouveautés, qui pourraient vous paraître obscures.


Un langage fonctionnel


Contrairement à la programmation impérative, le paradigme fonctionnel supprime les changements d'états de ses programmes. Ainsi, la modification de la valeur d'une variable est par exemple interdite. De plus, les boucles n'existent pas car la variable ne changeant pas d'état, la condition serait toujours évaluée à « vrai » ou « faux ». Néanmoins, les boucles ne sont pas utiles dans les langages fonctionnels, étant donné que la récursion permet d'en reproduire le principe.

Certains langages fonctionnels permettent néanmoins les changements d'états : c'est le cas par exemple d'OCaml. Il est en effet possible de faire une boucle : for i=1 to 10 do[] , caml fait donc partie des langages fonctionnels impurs, il en existe évidemment d'autres. En revanche, des langages comme Haskell, n'autorise pas cet effet de bord : ce sont des langages fonctionnels purs.


Fonctions


Image utilisateur

Une fonction reçoit des paramètres et retourne une valeur, ses entrées pouvant être des nombres, des caractères, des chaînes de caractères et des fonctions. Ce dernier point caractérise le paradigme fonctionnel : des fonctions peuvent en effet prendre en argument des autres fonctions. Des langages comme le C le permettent aussi, mais cela est plus complexe à traiter puisqu'il faut alors passer par des pointeurs de fonctions. Une fonction qui manipule d'autres fonctions est appelée fonction d'ordre supérieur.

Pour mieux expliquer l'intérêt de ces fonctions, définissons une fonction sort2 qui prend en arguments une fonction ainsi que deux objets. Cette fonction retourne une liste contenant les deux objets triés selon la fonction passée en argument :

Code : Clojure
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
> (defn sort2 [fun a b]  
    (if (fun a b)  
      (list a b)  
      (list b a)))

> (sort2 > 5 4) ; l'élément le plus grand sera placé en premier
(5 4)

> (sort2 < 5 4) ; ici c'est l'élément le plus petit qui sera en premier
(4 5)

;; ici c'est la chaîne la plus courte qui sera placée en premier (.length
;; calcule la longueur d'une chaîne de caractère)
> (sort2 (fn [a b] (< (.length a) (.length b))) "zéro" "un") 
("un" "zéro")


Clojure, un puissant dialecte de Lisp

Image utilisateur

Clojure, créé en 2007 par Rich Hickey, est un dialecte de Lisp. Inspiré par les langages Haskell, Erlang et ML, ce langage de programmation fonctionnel se veut à la fois moderne, efficace et robuste pour la programmation multitâche, simplifiée par la programmation concurrente.

Clojure possède un typage dynamique des données et un puissant système de macros qui permet d'étendre les fonctionnalités du langage avec des codes utilisateur.

Voici comment on pourrait définir la macro « when », qui est une forme raccourcie de « if » :

Code : Clojure
1
2
3
(defmacro when
  [test & body] 
  (list 'if test (cons 'do body)))

Le code ci-dessus représente la définition de la macro when telle qu'elle l'est dans le langage. Elle prend en argument une condition test et un corps à exécuter body. Une macro retourne une liste, qui est en fait le code qui sera généré par la macro.

D'autre part, Clojure utilise des structures de données persistantes et des objets non-mutables (types de données ne pouvant être modifiées après leur création). De plus, son évaluation paresseuse lui offre une certaine optimisation étant donné que les séquences ne sont évaluées seulement si elles sont nécessaires par la suite.

Clojure dispose aussi d'une interface interactive (comme le langage Python) qui permet de saisir les commandes à la suite des autres, dans une console. Ce procédé se nomme REPL et se lance en tapant simplement clj dans la console. À noter qu'un site nommé tryclojure permet d'exécuter du code Clojure en ligne, sans installer de logiciel sur votre ordinateur.


Syntaxe


Clojure utilise l'Expression Symbolique (ou S-expression), une convention concernant la représentation des différentes données des langanges de la famille Lisp. Celle-ci inclut la notation préfixée (ou polonaise), qui est utilisée dans Clojure. Par exemple, le calcul ((7 + 3) * 2) / 4 s'écrit : (/ (* 2 (+ 7 3)) 4) .

Contrairement à la notation habituelle, les opérateurs arithmétiques de Clojure (et des langages Lisp en général) ont une arité quelconque, cela veut dire qu'ils peuvent recevoir autant de nombres que vous le voulez : (+ 1 2 3 4 5) , équivaut à 1 + 2 + 3 + 4 + 5.

Il serait inutile de décrire la syntaxe de tous les types de données de Clojure, voyez plutôt la documentation.
Néanmoins, voici quelques différences syntaxiques et sémantiques entre Clojure et les autres langages de la famille des Lisp.


Clojure et Java


Clojure est un langage qui compile du bytecode utilisable par la JVM, ce qui fait de lui un langage multiplate-forme. Outre le fait qu'il utilise la machine virtuelle de Java, Clojure est très « proche » de ce dernier. En effet, il offre un accès rapide aux frameworks Java comme Swing, une bibliothèque graphique, et il est très simple d'appeler un code Clojure au sein d'une application Java. Par exemple, voici une ligne de Clojure qui permet d'afficher « Bonjour les zéros ! » dans une GUI :

Code : Clojure
1
(javax.swing.JOptionPane/showMessageDialog nil "Bonjour les zéros !")

Pour un exemple plus complet d'utilisation de Swing avec Clojure, consultez cette page.


La programmation concurrente


Comme dit précédemment, Clojure a été inspiré par Erlang, un langage se basant sur la programmation concurrente. Ce type de programmation constitue un autre paradigme, différent de l'impératif ou du fonctionnel, qui permet d'exécuter différents morceaux du programme en parallèle, grâce à plusieurs fils d'exécution (threads). Pour y parvenir, le processeur passe la main à un thread, exécute un certain nombre d'instructions puis alterne avec un autre thread, et ainsi de suite. De nos jours, grâce aux processeurs dits « multi-cœurs » ou à la technologie Hyper-Threading d'Intel, l'exécution de ces différents threads peut se dérouler en même temps.

Observez donc ce code :

Code : Clojure
1
2
3
4
(def counter (ref 0)) ; définition d'une variable mutable counter avec la valeur 0
(defn next-counter []
  (dosync 
    (ref-set counter (+ 1 @counter))))

counter est une variable mutable : pour accéder à sa valeur on utilise le symbole @. Dans l'exemple ci-dessus, on incrémente la variable de 1. ref-set counter sert à affecter les modifications à la variable (en C par exemple : foo += 1; ).

Maintenant, imaginons qu'un processus A fasse appel à next-counter en même temps qu'un processus B. Le processus B est plus rapide que le A et appelle next-counter : counter va donc valoir 1. A lit @counter avant que B ne le modifie, A va faire son ref-set , ce qui va donc donner (+ 1 0) . Or, il y a un problème car counter ne vaut plus 0, mais 1. La concurrence règle donc ce type de problèmes, ici grâce à dosync qui va s'assurer qu'aucun thread ne touche à @counter pendant un temps.


Les nouveautés de Clojure 1.2


En plus de la soixantaine de bugs corrigés, comme à chaque nouvelle version, il y a eu des modifications sur l'implémentation du langage. On peut noter l'amélioration des performances de plusieurs fonctions, la refonte de certains modules (dont le module gérant les fractions), de nouvelles fonctionnalités (possibilité de lancer la documentation Java à partir de l'ERPL, de nouveaux namespaces, support des macros de primitifs de Java, sans boxing), etc.

Comme nous vous l'avons dit en introduction, nous n'avons pas l'intention de nous éterniser sur les nouveautés de cette nouvelle version de Clojure, qui ne vous intéresseraient sans doute pas si vous n'avez jamais entendu parler de Clojure.

Néanmoins, pour ceux qui Clojure intéresse, un lien regroupant toutes les modifications de la version 1.2 est disponible ci-dessous.


Liens et sources

71 Participations

Pour accéder à cette section
Connectez-vous !
connexion_rpx
Page 1  2  3  Suivante
Pseudo Discussion
1 visiteur sur cette news (0 membre et 1 Anonyme)
Page 1  2  3  Suivante
Hors ligne Edmeral # Posté le 24/08/2010 à 05:37:05
Ulquiorra ♥ Ubuntu !
Avatar

Ville : Meknès
Pays : Maroc

Je me pose toujours une question : "Pourquoi un langage de plus" ?
Je veux dire qu'est ce qui va pousser le programmeur à choisir Clojure et non pas d'autres langages (fonctionnels peut être)?

Perso je ne vois pas l'intérêt de tout ces langages qui fleurissent chaque jour (j'exagère un peu là :-° )



 
Hors ligne LoupSolitaire # Posté le 24/08/2010 à 05:39:29
Connard patenté
Avatar

Citation : Edmeral
Je me pose toujours une question : "Pourquoi un langage de plus" ?

Probablement parce que tu n'as pas encore eu l'occasion d'essayer des langages différents :p

(quand je dis essayer, c'est pas deux minutes pour faire un hello world et fibonacci, c'est coder vraiment avec).
Hors ligne Craw # Posté le 24/08/2010 à 05:49:46
Rien n'est parfait !
Avatar
Modérateurs

Je me suis toujours posé la même question que Edmeral, même si on n'a pas essayé plusieurs langages je doute fortement que les nouveaux langages apportent quelque chose de plus, car finalement chaque langage a une spécificité commune, à la fin on retombe sur les mêmes notions : POO, procédural...
Hors ligne Android # Posté le 24/08/2010 à 05:54:24
Qui a dit Android ?
Avatar
Groupe : Bannis

A quand le tuto Clojure ?

Image utilisateur
Image utilisateur
 
Hors ligne aliogan # Posté le 24/08/2010 à 06:17:13
Avatar

Ville : Jhongli
Pays : Taïwan

Pourquoi il y a autant de modèles de voitures?
c'est la même chose, il y en a adapté à chaque besoins, gouts.

Par contre, je devrais bien tenter ce genre de language fonctionnel un de ces jours c'est peut être sympa qui sait?
Hors ligne AmberBlackthorn # Posté le 24/08/2010 à 06:18:28
Quebec Powaaaaa! \o/
Avatar

Ville : Rock forest (quebec)
Pays : Canada

Pourquoi un langage de plus? Parce que quelqu'un s'est rendu compte que le langage qui était (selon ses gouts, ses habitude de programmation, etc etc) parfais n'existait pas, alors il créer celui qui lui plais.

Prenez moi par exemple: J'adore programmer en PHP, mais certaines lacunes font que j'aimerais trouver un langage similaire a PHP, avec des truc que PHP ne fait pas.
J'aimerais bien avoir un site qui sois chargé dans la mémoire, qui génère les pages avec ce qu'il a en mémoire, sans que tout sois détruit a la fin... Je pourrais enfin me lancer dans la POO en PHP! (C'est mon principal frein, a cause de ca je refuse de faire de la POO en PHP, c'est un avis peros) Java le fais! :) (d'ailleurs j'avais envie de me lancer dans Java, mais avec le rachat d'Oracle et les procès divers contre Android, Open Solaris rendu payant et tout, j'attends de voir le futur de Java avant de m'y lancer)

Bref, voilà pourquoi il y a tant de langage. Tout les programmeurs ne sont pas pareils, tous n'ont pas les mêmes besoins.


 
Hors ligne Edmeral # Posté le 24/08/2010 à 06:37:25
Ulquiorra ♥ Ubuntu !
Avatar

Ville : Meknès
Pays : Maroc

Citation : LoupSolitaire
Citation : Edmeral
Je me pose toujours une question : "Pourquoi un langage de plus" ?

Probablement parce que tu n'as pas encore eu l'occasion d'essayer des langages différents :p

(quand je dis essayer, c'est pas deux minutes pour faire un hello world et fibonacci, c'est coder vraiment avec).

j'ai codé avec C, Java, PHP et maintenant j'apprends Python. Je sais qu'il y a des différences entre ces langages.

Mais comme l'a dit mberBlackthorn, la réponse d sur pourquoi il y a tant de langages, c'est parce que "quelqu'un s'est rendu compte que le langage qui était (selon ses gouts, ses habitude de programmation, etc etc) parfais n'existait pas, alors il créer celui qui lui plais. " ;)



 
Hors ligne LoupSolitaire # Posté le 24/08/2010 à 06:38:43
Connard patenté
Avatar

Citation : Craw
Je me suis toujours posé la même question que Edmeral, même si on n'a pas essayé plusieurs langages je doute fortement que les nouveaux langages apportent quelque chose de plus, car finalement chaque langage a une spécificité commune, à la fin on retombe sur les mêmes notions : POO, procédural...

Sans vouloir troller de si bon matin (non vraiment, ça me ressemble pas), si je pousse ta réflexion à l'extrême, j'arrive à cette conclusion : « pourquoi se faire chier avec des langages ? Au final on retombe toujours sur du code machine, alors autant l'écrire directement à la main ! »

Citation : Edmeral
j'ai codé avec C, Java, PHP et maintenant j'apprends Python. Je sais qu'il y a des différences entre ces langages.

Bof, ceux là ils sont tous pareils[1], essaye un Lisp (comme Clojure, ça tombe bien :p ) ou carrément un truc genre Haskell, voire Prolog, histoire de voir des choses vraiment différentes ;)

[1] Les gens qui prennent tout au premier degré sont priés de ne pas répondre.

EDIT : Là je suis en train de faire du Haskell, et quand même ça décape bien le cerveau.
Hors ligne stombaker # Posté le 24/08/2010 à 07:10:39
Avatar

Études : IUT Nantes

Il faudrait peut-être que j'en essaye d'autres de langage, moi. :p
Sinon, à part les habitudes, au final, on retrouve la même chose, ou un langage sera plus adapté pour un truc et un autre pour un truc différent ?
 
Hors ligne AmberBlackthorn # Posté le 24/08/2010 à 07:24:23
Quebec Powaaaaa! \o/
Avatar

Ville : Rock forest (quebec)
Pays : Canada

Tu peu pas coder de jeu 3D en PHP, c'est pas très pratique de coder un site internet en C++, sa dois être très très drôle coder une IA en ASM, donc oui, les langages sont souvent plus utile dans un truc que dans d'autres. ^^


 
Hors ligne Mow # Posté le 24/08/2010 à 07:38:47
La vie sans compromis.
Avatar
Flux RSS

Ville : Grenoble
Pays : France métropolitaine

Le PHP c'est du script, sa na pas les performance du C++. Le PHP n'est pas fait pour faire des jeux video.
merci pour la news
 
Hors ligne ProgVal # Posté le 24/08/2010 à 07:50:14
Catapoulpe !
Avatar

Ville : Jouy aux arches
Pays : France métropolitaine
Études : Lycée Fabert - Metz

Citation : news
il est très simple d'appeler un code Clojure au sein d'une application Java
C'est pas plutôt l'inverse ?

Image utilisateur
 
Hors ligne pifpaf987 # Posté le 24/08/2010 à 08:16:58

difficile quand on vient du PHP d s'imaginer un monde sans boucles ni changement de variable et autre....

le tout est plus que la somme des parties
 
Hors ligne nabuu # Posté le 24/08/2010 à 08:46:47

Études : Lycée Janson de Sailly - Paris 16ème

Citation
Citation : Edmeral
j'ai codé avec C, Java, PHP et maintenant j'apprends Python. Je sais qu'il y a des différences entre ces langages.

Bof, ceux là ils sont tous pareils[1], essaye un Lisp (comme Clojure, ça tombe bien :p ) ou carrément un truc genre Haskell, voire Prolog, histoire de voir des choses vraiment différentes ;)

Oui enfin tous pareils...
Si tu veux parler des paradigmes employés, alors oui, il s'agit toujours de l'impératif/poo ( pour java je ne sais pas, je n'en ai jamais fait, et pour C, seul C++ fait de l'oo, mais je te comprends ). Après il y a quand même d'énormes différences, par exemple le C est un langage compilé, python est interprété, le typage n'est pas le même... les différences entre les langages qui ne sont pas toujours aisément discernables pour les "nouveaux" ( dont je ne m'exclus pas ), traduisent amha des besoins pour les entreprises ou pour le milieu de la recherche.
Personnellement, on m'a fait découvrir Ocaml et je ne suis vraiment pas déçu.
Hors ligne zarthur # Posté le 24/08/2010 à 08:58:42

Les langages fleurissent, mais sincèrement je pense que 5 langages à tout casser suffiraient à tous les programmeurs de la terre s'ils étaient bien conçus...
 
Hors ligne anonyme # Posté le 24/08/2010 à 09:08:33

bizonneus : Bah justement là il parle de C, Java et PHP, pas de tous les langages de programmation. (EDIT : ouais ok tu as édité, ma réponse est moins intéressante du coup.)

Et puis on ne peut pas dire « Python est interprété » ou « C est compilé », ça c'est juste une question d'implémentation, il est vrai que GCC est un compilateur et CPython un interprète, mais il est techniquement possible d'écrire un interprète C ou un compilateur Python (ce qui existe d'ailleurs, par exemple Unladen Swallow).

La news est intéressante, et j'espère qu'elle incitera certaines personnes à utiliser Clojure, mais je pense également qu'il aurait été judicieux d'expliquer la notion de « boxing », mentionnée à la fin, (si je me rappelle bien ce qu'en dit RWH, c'est le fait qu'une valeur puisse aussi contenir ⊥, c'est-à-dire une valeur qui indique que le calcul n'a pas pu être terminé, par exemple à cause d'une erreur, non ?).

zarthur: Non.
Hors ligne vloz # Posté le 24/08/2010 à 09:49:37
Avatar

Ville : Pont à mousson
Pays : France métropolitaine

New tres interessante! :)
Par contre, pour me la péter totalement lors de mon prochain diner de famille, je dois prononcer Clojure comment?
"klocheur?"

Citation : #sdz
<hocine21> salut les zéros !
<nicofrand> on est pas des zéros, connard
 
Hors ligne Fabrices # Posté le 24/08/2010 à 10:05:44
Avatar

Ville : Bron
Pays : France métropolitaine
Études : SUPINFO Rhône-Alpes à Lyon

+1 pour le "non" à zarthur, et +1 pour la news est intéressante ;)

Je suis pour les nouveaux langages dans la mesure où ça donne une nouvelle conception de la programmation selon l'esprit du créateur.

Chose en quoi, je connais des personnes qui codent des IA (enfin, UNE personne ^^) en asm juste pour la détente, AmberBlackthon ;)
 
Hors ligne Marg51 # Posté le 24/08/2010 à 10:10:21

Avatar

Ville : Saint pierre de boeuf
Pays : France métropolitaine

Oui, c'est très intéressant comme news: même si je n'ai pas l'intention de l'apprendre, au moins je serais en gros ce qu'est Clojure :)

user powered by Image utilisateur
 
Hors ligne Bakakun # Posté le 24/08/2010 à 10:12:56
\o/
Avatar

Ville : Bicqueley
Pays : France métropolitaine
Études : ESIAL

Pas mal.
Par rapport à l'utilité d'un tel langage, je pense que c'est surtout d'un point de vue réflexion et adaptation.
Ce langage est complètement différent du C ou du PHP, il n'est pas impératif (merci une news récente pour me l'avoir appris ^^"), quand j'ai regardé le code le premier coup, pour la première fonction, j'ai pas compris tout de suite comment tout ça fonctionnait. Et c'est ça qui est intéressant, programmer nécessite une logique, et lorsqu'on fait que du C (ou Java, Ruby, PHP, etc.), on croit que notre logique est universelle (parce qu'à part la syntaxe et la puissance des fonctions, on s'y retrouve tous ...), alors qu'elle ne l'est pas forcément, ça permet de voir les choses différemment, et si on est plus à l'aise avec cette méthode de programmation, peut être qu'on avancera mieux.

Image utilisateur
 
Hors ligne tcpc` # Posté le 24/08/2010 à 10:24:31
tcpc™
Avatar
Groupe : Bannis

Merci pour la news. Un petit voyage dans le monde des langages informatiques avec trois news sur le sujet en moins d'une semaine, ça fait franchement plaisir. Très intéressant.

Pour ma part, j'ai été impressionné par la concision de cet exemple :
Code : Clojure
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
> (defn sort2 [fun a b]  
    (if (fun a b)  
      (list a b)  
      (list b a)))

> (sort2 > 5 4) ; l'élément le plus grand sera placé en premier
(5 4)

> (sort2 < 5 4) ; ici c'est l'élément le plus petit qui sera en premier
(4 5)

;; ici c'est la chaîne la plus courte qui sera placée en premier (.length
;; calcule la longueur d'une chaîne de caractère)
> (sort2 (fn [a b] (< (.length a) (.length b))) "zéro" "un") 
("un" "zéro")


Il a failli me donner envie de mettre à découvrir Clojure mais le fait que le langage utilise la JVM m'a rebuté. Je n'aime pas du tout la JVM (ni Java, btw) et je m'en passe volontiers. Par contre, puisqu'il s'inspire d'Haskell, Erlang et Lisp, je vais allé faire un tour de leur côté.
 
Hors ligne ardemii # Posté le 24/08/2010 à 10:25:19
Avatar

Ville : Paris
Pays : France métropolitaine

Les seuls langages vraiment utile sont cocoa objective c pour mac, vb.net pour windows,C++ pour linux et java pour tous.(peut être python pour les scripts).
 
Hors ligne aerosmith # Posté le 24/08/2010 à 10:42:37
Avatar

Ville : Agueda
Pays : Portugal

haha mdr, coder une ia em asm ^^, c'est vrai qu'il y a rien de mieux pour la detente, c'est un peu notre version du yoga xD

:-°
 
Hors ligne qwerty # Posté le 24/08/2010 à 10:44:59
"2 virgule 21 gigowatts ?!"
Avatar
Groupe : Bannis

Et un langage de plus un !
 
Hors ligne O_Amande # Posté le 24/08/2010 à 10:48:08
Avatar
Flux RSS

Études : Epitech Paris

Encore un nouveau language qui peut paraitre sympa...
 
Hors ligne planete.game57 # Posté le 24/08/2010 à 10:53:23
Avatar

Études : IRIS

Merci beaucoup de m'avoir fait découvrir ce langage que je ne connaissais pas.

Par contre, c'est la première fois que je vois une syntaxe si peu commune d'écrire les calculs. o_O

xHTML/CSS |||||||||| 100% | PHP/MySQL |||||||||| 100% | Langage C |||||||||| 8.5%
Python |||||||||| 100% | JavaScript |||||||||| 5.5% | Photoshop |||||||||| 0.0%
Smarty |||||||||| 100%

Image utilisateurImage utilisateur
 
Hors ligne acieroid # Posté le 24/08/2010 à 11:00:59
#foo waz here
Avatar
Flux RSS

Études : FSA ULB

Citation : Edmeral
Je veux dire qu'est ce qui va pousser le programmeur à choisir Clojure et non pas d'autres langages (fonctionnels peut être)?

C'est un lisp orienté vers la programmation concurrente et qui permet une communication simple avec la JVM, il est donc "unique" en son genre, et c'est pourquoi beaucoup de gens sont intéressés par Clojure.

Citation : ProgVal
C'est pas plutôt l'inverse ?

La communication dans les deux sens est facile en fait. La news montre des exemples pour appeler des méthodes Java depuis Clojure, mais l'inverse est aussi possible.

Citation : tcpc
Il a failli me donner envie de mettre à découvrir Clojure mais le fait que le langage utilise la JVM m'a rebuté. Je n'aime pas du tout la JVM (ni Java, btw) et je m'en passe volontiers. Par contre, puisqu'il s'inspire d'Haskell, Erlang et Lisp, je vais allé faire un tour de leur côté.

Si cet exemple t'as donné envie, ce principe existe dans tous les langages fonctionnels :)

Citation : vloz
Par contre, pour me la péter totalement lors de mon prochain diner de famille, je dois prononcer Clojure comment?
"klocheur?"

Clojure tire en fait son nom des closures, un concept assez important dans la programmation fonctionelle (fermetures en français), et il se prononce de la même façon que "closure" (le j est là pour indiquer le fait qu'il soit très proche de la JVM je suppose, et cela ne change rien à la prononciation).

Citation : planete.game57
Par contre, c'est la première fois que je vois une syntaxe si peu commune d'écrire les calculs.

Cette syntaxe s'avère très pratique dans le cas des macros, qui manipulent le code. Comme le code n'est rien d'autre qu'une liste ("code is data and data is code"), sa manipulation devient très simple.

It's awesom.
 
Hors ligne anonyme # Posté le 24/08/2010 à 11:02:04

tcpc_ : Euh qu'est-ce que ça a de si concis ? Ça trie deux éléments hein, pas une liste…
Hors ligne nietzsche # Posté le 24/08/2010 à 11:04:11
Fan de Cynthia Prion
Avatar
Groupe : Bannis

Citation : ardemii
Les seuls langages vraiment utile sont cocoa objective c pour mac, vb.net pour windows,C++ pour linux et java pour tous.(peut être python pour les scripts).


J'espère que tu dis ça pour rire ! :-°

#LGDF: nietzsche vaincra !
Image utilisateur

Si jamais joyeusement je fus assis là où d'antiques dieux jouissent ensevelis, bénissant le monde, aimant le monde auprès des mémoriaux de ceux qui jadis ont calotté le monde ; - - car me sont chères même les églises et les tombeaux des dieux dès que le ciel, au travers de leurs toits baisés, regarde d'un œil pur; comme l'herbe et le rouge pavot, sur des ruines d'églises j'aime m'assoupir. - oh ! comment de l'éternité n'aurais-je concupiscence, et du nuptial anneau des mazots, - de l'anneau du retour ?
 
Hors ligne Karl Yeurl # Posté le 24/08/2010 à 11:07:15
Orange et gris.
Avatar
Flux RSS

Ville : Flémalle
Pays : Belgique
Études : FSA ULG

Citation : nietzsche
Citation : ardemii
Les seuls langages vraiment utile sont cocoa objective c pour mac, vb.net pour windows,C++ pour linux et java pour tous.(peut être python pour les scripts).


J'espère que tu dis ça pour rire ! :-°

Ça a au moins le mérite de nous faire rire, que ce soit voulu ou non. :D


« Défendre le c cédille majuscule n’est-il pas vain ? Ca m’isole, comme disent les fous. »
Stéphane ARLEN
 
Pour accéder à cette section
Connectez-vous !
connexion_rpx

Revenir à la liste des news