Présentation de la constitude du D2.0 (et rapport avec la programmation fonctionnelle)

2 views
Skip to first unread message

Arkanosis

unread,
Jul 22, 2008, 6:27:28 AM7/22/08
to dcom...@googlegroups.com

Alexandre Bique

unread,
Jul 22, 2008, 11:40:38 AM7/22/08
to dcom...@googlegroups.com
2008/7/22 Arkanosis <arka...@gmail.com>:
>
> http://www.digitalmars.com/d/2.0/accu-functional.pdf

Et toi tu en penses quoi ? :)

Je crois qu'il y a quelques erreures dans les slides par exemple quand
il dit que cont(T).field est de type const(X), c'est vrai avec
invariant mais avec const ?
Je m'explique : vue que X peut-etre une classe, alors on manipule un
pointeur, en C++ const(T).field serait de type X*const et non pas X
const *. Enfin le point n'est pas tres claire dans les slides.

Je n'ai pas compris pourquoi T ne peux pas etre implicitement
convertit en invariant(T) ?

Le constructeur est different pour les invariants et qu'en est-il du
destructeur ou d'autre methodes ?

Apres je ne sais plus trop quoi penser de Walter, il craque un peu.
Dire qu'une fonction ne depends que de ses parametres d'entree ca fait
un peu totologie... Une variable globale ca peut-etre vue comme un
parametre d'entree avec du recul. J'ai plus le sentiment qu'il rentre
dans une problematique ou il va chercher a donner a son langage les
moyens de tout exprimer alors que c'est pas la solution. Ca va devenir
un gros foutoire incomprehensible. Je reviens sur ce que je pense : il
faut accepter qu'un langage soit imparfait, utiliser un marteau pour
enfoncer des clous et un fer a repasser pour repasser le linge mais
pas un couteau suisse.

--
Alexandre Bique (bique.a...@gmail.com)
Epita 2009 - GISTR - Yaka
Port. +336 19 42 85 26

Matthieu Garrigues

unread,
Jul 22, 2008, 11:53:33 AM7/22/08
to dcom...@googlegroups.com


2008/7/22 Alexandre Bique <bique.a...@gmail.com>:

 Une variable globale ca peut-etre vue comme un
parametre d'entree avec du recul.

Si elle est utilisée en lecture oui, mais pas si elle est modifiée.

--
Garrigues Matthieu
EPITA 2009
Tel : 06.50.94.06.23 - 09.51.42.69.42

Arkanosis

unread,
Jul 22, 2008, 12:13:03 PM7/22/08
to dcom...@googlegroups.com
Le 22 juillet 2008 17:40, Alexandre Bique <bique.a...@gmail.com> a écrit :
> Je crois qu'il y a quelques erreures dans les slides par exemple quand
> il dit que cont(T).field est de type const(X), c'est vrai avec
> invariant mais avec const ?

En D oui, le const est transitif.

> Je m'explique : vue que X peut-etre une classe, alors on manipule un
> pointeur, en C++ const(T).field serait de type X*const et non pas X
> const *. Enfin le point n'est pas tres claire dans les slides.

Ça c'est le cas en C++ effectivement. En D, il est de type X const *
const, toujours du fait de la transitivité.

> Je n'ai pas compris pourquoi T ne peux pas etre implicitement
> convertit en invariant(T) ?

invariant est une classe de stockage (pas un cv-qualifier) : tu l'es
ou tu ne l'es pas, mais tu ne peux pas passer de l'un à l'autre.

> Le constructeur est different pour les invariants et qu'en est-il du
> destructeur ou d'autre methodes ?

Logiquement, pas de modifications de this ou de ce qui est accessible
par this par les méthodes, et la destruction est gérée par le garbage
collector. Enfin là l'optique est surtout la partie purement
fonctionnelle du langage, j'imagine qu'il y a des destructeurs normaux
autrement.

> Apres je ne sais plus trop quoi penser de Walter, il craque un peu.

Là c'est Andreï, pas Walter ;)

--
Arkanosis

Reply all
Reply to author
Forward
0 new messages