|
Publicité ' | ||||||||||||||||||||||||
|
|
#21 |
|
Membre éclairé
![]() Mickael Inscription : mai 2010 Messages : 247 ![]() |
moi ce serait un reproche tout bête : l'indentation.
Combien de fois je me suis fais avoir par des erreurs venant du fait qu'il y avait un "tab" en début de ligne au lieu de 3 ou 4 espaces... Après je pense qu'un IDE le rendrait plus populaire... A moins qu'il en éxiste déja un et que je ne l'ai jamais trouvé ? Sinon le langage est bien pratique, j'ai fais un projet de manipulation algébrique de graphe avec... |
|
|
00
|
|
|
#22 | |||||
|
Nouveau Membre du Club
![]() Inscription : octobre 2002 Messages : 36 ![]() |
Citation:
Code :
là ou on écrit en général Code :
|
|||||
|
|
00
|
|
|
#23 | |
|
Nouveau Membre du Club
![]() Inscription : octobre 2002 Messages : 36 ![]() |
Citation:
\x = 3*x suggère que x = 3*x. On peut également avoir la suggestion que \x = 3*x "lambda x égale 3 fois x", ce qui suggère fonction anonyme qui à un paramètre x associe le résultat 3*x. Ton explication sur la cohérence avec les motifs case ... of me plait mieux. |
|
|
|
00
|
|
|
#24 | ||||
|
Membre régulier
![]() Inscription : septembre 2007 Messages : 99 ![]() |
Citation:
Citation:
Citation:
Citation:
Tout ce qui fait un effet de bord doit être la dedans. On n'y peut rien. Après pas mal de développeuirs ne comprennent pas que IO n'est pas une poubelle. |
||||
|
|
00
|
|
|
#25 |
|
Membre régulier
![]() Inscription : septembre 2007 Messages : 99 ![]() |
Il y a un point qu'on peut reprocher à Haskell : il ne fait pas de POO. Il y a de rares cas (contrôles d'une interface graphique) où c'est extrêmement utile.
|
|
|
00
|
|
|
#26 |
|
Nouveau Membre du Club
![]() Inscription : octobre 2002 Messages : 36 ![]() |
|
|
|
00
|
|
|
#27 |
|
Membre régulier
![]() Inscription : septembre 2007 Messages : 99 ![]() |
Ouais le jour où ça buildera sur les trois OS sans pb. Aujourd'hui je n'ai pas encore réussi à builder ce genre de choses.
|
|
|
00
|
|
|
#28 |
|
Membre du Club
![]() Inscription : mai 2005 Messages : 130 ![]() |
Un truc tout bête : la fonction split n'existe pas dans Data.List !!!
Evidemment, Google is my friend trouve plein de solutions, mais si c'était codé dans le module ce serait quand même mieux. A noter sa présence dans Data.Text |
|
|
00
|
|
|
#29 |
|
Membre du Club
![]() Inscription : mai 2005 Messages : 130 ![]() |
Eh puis un truc tout de même inconcevable.
Haskell défini des monoïdes, ce qui plait vraiment bien au mathématicien qui sommeille (parfois) en nous. Pour mémoire, en maths, un monoïde est une structure algébrique consistant en un ensemble muni d'une loi de composition interne associative et d'un élément neutre. Bien, et là, comment s'appelle en Haskell l'élément neutre et la loi de composition interne ? respectivement mempty et mappend !!! quand même, quel dommage ... |
|
|
00
|
|
|
#30 | |
|
Nouveau Membre du Club
![]() Inscription : juin 2009 Messages : 86 ![]() |
Citation:
En fait, au final, je n'utilise quasiment que des types immutables (et rien ne m'assure que je suis à l'abri d'une erreur, puisque les listes par ex en Python n'ont pas de version immutable) et très peu d'héritage. Scala mélange excellemment objet et fonctionnel, car il encourage l'utilisation de structures de données immutables (les types de base existent en 2 versions: mutable et immutable) et dispose de primitives en ce sens (case classes et pattern matching notamment) qui s'inspirent d'ailleurs grandement de ce qu'on trouve en ML/Haskell. Le fait qu'une variable puisse être déclarée soit mutable ('var') soit immutable ('val') apporte beaucoup. Remarque, il exite O'Haskell (je ne l'ai jamais testé) qui ajoute une couche objet sur Haskell. Pour réaliser des GUI, je te suggère de jeter un coup d'oeil du côté de la FRP (programmation fonctionnelle réactive, avec des librairies comme elerea, reactive ou yampa). Alors, c'est pas simple (yampa utilise les arrows en plus, et est bien compliqué de base), mais les principes utilisés sont assez puissants et élégants. |
|
|
|
00
|
|
|
#31 |
![]() ![]() Inscription : juin 2005 Messages : 8 586 ![]() |
Les types algébriques et les records comme on a en Haskell sont une approche alternative à la POO pour modéliser des données. De la même façon, plutôt qu'une classe implémente une interface / dérive d'une classe abstraite, hé bien ton type de données va être instance d'une typeclass.
Les deux approches sont différentes, mais il n'y en a pas vraiment une qui est plus puissante que l'autre. Chacune a des avantages. (plus le temps passe, plus j'en trouve à l'approche Haskell, malgré mes 6 ans de C++...)
__________________
Mon blog anglais - Mes articles et critiques de livres - FAQ C++0x, avec liste des nouveautés - Conseils sur le C++ - La meilleure FAQ du monde - Avant de créer des classes que vous réutiliserez, regardez si ça n'existe pas déjà - Le site du comité de normalisation du C++ Le guide pour bien débuter en C++ |
|
00
|
Copyright © 2000-2013 - www.developpez.com