Un langage d'homme, un vrai ...
Par Dark-Side le lundi, août 27 2007, 21:55 - Algo - Lien permanent
Parce que y'en a marre de ces langages d'hérétiques ! (cf: billets précédents)
On va enfin pouvoir regarder un langage pur (et sayx) : l'ocaml ...
On va enfin pouvoir regarder un langage pur (et sayx) : l'ocaml ...
Je ne vais pas passer trois heures à vous présenter le caml vous avez déjà tous du écouter bluestorm moi je vais vous donner des exemples (des vrais) de la supériorité du caml sur les langages impurs.
Celà va d'un simple "hello world ! " à un bot irc §§
"Hello, World !"
Code ocaml :
Un algorithme de cryptage simple : le césar
Le code en ocaml :
Conway's game of life
Le code en ocaml : jeu_de_la_vie.ml
Le code en C : jeu_de_la_vie.c (merci à Cygal pour ce code gracieusement fournis, il ne se doutais pas de ce à quoi allait servir sinon je ne l'aurais surement jamais eu en fait :p)
Concernant le code de Cygal vous pouvez enlever si vous le souhaitez tous les beaux commentaires qui ne servent à rien dans le contexte de cet article il n'en demeurera pas moins plus long, après certains pourront dire qu'il est mieux, le rendu plus jolie, etc etc mais reconnaissez que tous ces commentaires seraient dénués de bonne fois :p (tous comme ce billet ? :-° )
Le bot IRC
Euh ... disons qu'on en parlera à l'occasion d'un autre article :D
Bon vous direz que ce billet pue (mais bon on a vu pire hein :p ) et que y'a des langages surement mieux que le caml mais sans exemples concrets vous resterez sous sa domination (mouhahahaha ? :-° ) si jamais vous avez envie de rajouter des exemples en python, en ruby voir en Obj-C n'hésitez pas àéditer ce billet à me les passer afin que je les soumettent à la censure/dégradent/refuse.
Merci de votre attention.
Vous pouvez désormais fermer votre navigateur et reprendre une activité normale ... :p
PS: je promet de trouver une vrai idée pour les autres billets et de les rédiger un tant soit peu :p
PS 2: Et dire que j'ai emmerdé Poulet toute la journée pour ce billet, quand il va le voir il va être deg :D
Celà va d'un simple "hello world ! " à un bot irc §§
Les différents exemples
"Hello, World !"
Code ocaml :
print_string "Hello, World !"Code C:
#includeLa lourdeur d'un langage impératif/impur n'est pas à démontrer plus avant sur cette exemple on va donc passer au suivant si vous le voulez bien !#include int main(int argc, char *argv[]) { printf("Bonjour"); return 0; }
Un algorithme de cryptage simple : le césar
Le code en ocaml :
let rec replace crypted initial cle i long=Le code en C :
if i >= long then crypted
else
let cc = Char.chr (cle + Char.code initial.[i]) in
let sc = String.make 1 cc in replace (crypted ^ sc) initial cle (i+1) long
;;
let encrypt (mot: string) (cle: int) =
let long = String.length mot in
(replace "" mot cle 0 long)
;;
let string = read_line() in
let cle = read_int ()in
print_endline (encrypt string cle)
#includeUne fois de plus le code C est plus long que le code en ocaml §§#include #include #define MAX_BUF 50 void encrypt (char *chaine, int cle) { char *p; for (p=chaine; *p != '\0'; ++p) { if(isalpha(*p+cle)) *p += cle; } printf ("%s\n", chaine); } void clear(char* s, FILE* buffer) { char *p = NULL; if((p = strchr(s, '\n')) != NULL) *p = '\0'; else while(getc(buffer) != '\n'); } int main(int argc, char *argv[]) { char chaine[MAX_BUF]; int cle; fgets (chaine, MAX_BUF - 1, stdin); clear(chaine, stdin); scanf("%i", &cle); encrypt (chaine, cle); return 0; }
Conway's game of life
Le code en ocaml : jeu_de_la_vie.ml
Le code en C : jeu_de_la_vie.c (merci à Cygal pour ce code gracieusement fournis, il ne se doutais pas de ce à quoi allait servir sinon je ne l'aurais surement jamais eu en fait :p)
Concernant le code de Cygal vous pouvez enlever si vous le souhaitez tous les beaux commentaires qui ne servent à rien dans le contexte de cet article il n'en demeurera pas moins plus long, après certains pourront dire qu'il est mieux, le rendu plus jolie, etc etc mais reconnaissez que tous ces commentaires seraient dénués de bonne fois :p (tous comme ce billet ? :-° )
Le bot IRC
Euh ... disons qu'on en parlera à l'occasion d'un autre article :D
Conclusion:
Bon vous direz que ce billet pue (mais bon on a vu pire hein :p ) et que y'a des langages surement mieux que le caml mais sans exemples concrets vous resterez sous sa domination (mouhahahaha ? :-° ) si jamais vous avez envie de rajouter des exemples en python, en ruby voir en Obj-C n'hésitez pas à
Merci de votre attention.
Vous pouvez désormais fermer votre navigateur et reprendre une activité normale ... :p
PS: je promet de trouver une vrai idée pour les autres billets et de les rédiger un tant soit peu :p
PS 2: Et dire que j'ai emmerdé Poulet toute la journée pour ce billet, quand il va le voir il va être deg :D
Commentaires