Merci pour ces retours.
Le support des extensions de classe est prévu pour la prochaine version (note: on peux déjà redéfinir une classe F-Script existante). Je pense me limiter à la possibilité d'ajouter des méthodes à une classe existante. Je n'ai pas encore trouvé de syntaxe satisfaisante et je cherche toujours. Je ne suis pas sûr au final d'introduire une syntaxe. Il est possible que je passe par un simple message. Dans ce cas, une des possibilités que j'envisage sérieusement est d'introduire une méthode permettant de demander à une classe "d'apprendre" une méthode existant dans une autre classe. Par exemple, on pourrait écrire:
MyClass learn:#aMethod from:AnotherClass
Voila où j'en suis.
-Philippe
On Dec 2, 2009, at 1:26 PM, Philippe Mougin wrote:
Merci pour ces retours.
Le support des extensions de classe est prévu pour la prochaine version (note: on peux déjà redéfinir une classe F-Script existante). Je pense me limiter à la possibilité d'ajouter des méthodes à une classe existante.
oui override brek mais parfoi snecessaire
Je n'ai pas encore trouvé de syntaxe satisfaisante et je cherche toujours. Je ne suis pas sûr au final d'introduire une syntaxe.
Point>>newDistanceFrom: aPoint {
}
Class side
Point class >>newDistanceFrom: aPoint {
}
Il est possible que je passe par un simple message. Dans ce cas, une des possibilités que j'envisage sérieusement est d'introduire une méthode permettant de demander à une classe "d'apprendre" une méthode existant dans une autre classe. Par exemple, on pourrait écrire:
MyClass learn:#aMethod from:AnotherClass
je trouve pas cela tres cool et je prefere pepsi voir gnu syntaxe ou coral comme au dessus.
Voila où j'en suis.
-Philippe
Squeak-fr mailing list Squeak-fr@lists.squeakfoundation.org http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/squeak-fr
Pour l'extension de classe dans F-Script, l'approche maintenant pressentie est celle d'une syntaxe spécifique. Par exemple, voici le code pour ajouter une méthode "print" à la classe NSObject (la classe racine sur Mac OS X):
NSObject { - print { stdout print:self printString } }
Et pour reprendre ton exemple:
Point { - newDistanceFrom:aPoint { ... }
+ newDistanceFrom:aPoint { ... } }
Philippe
Le 2 déc. 2009 à 22:37, stephane ducasse a écrit :
On Dec 2, 2009, at 1:26 PM, Philippe Mougin wrote:
Merci pour ces retours.
Le support des extensions de classe est prévu pour la prochaine version (note: on peux déjà redéfinir une classe F-Script existante). Je pense me limiter à la possibilité d'ajouter des méthodes à une classe existante.
oui override brek mais parfoi snecessaire
Je n'ai pas encore trouvé de syntaxe satisfaisante et je cherche toujours. Je ne suis pas sûr au final d'introduire une syntaxe.
Point>>newDistanceFrom: aPoint {
}
Class side
Point class >>newDistanceFrom: aPoint {
}
Il est possible que je passe par un simple message. Dans ce cas, une des possibilités que j'envisage sérieusement est d'introduire une méthode permettant de demander à une classe "d'apprendre" une méthode existant dans une autre classe. Par exemple, on pourrait écrire:
MyClass learn:#aMethod from:AnotherClass
je trouve pas cela tres cool et je prefere pepsi voir gnu syntaxe ou coral comme au dessus.
Voila où j'en suis.
-Philippe
Salut Philippe,
J'imagine que tu as pensé à la solution d'objective-c avec des @. Cela enlève un niveau d'accolades supplémentaires. Pourquoi tu l'as écartée ? Cela donnerait pour la classe Point qq chose du genre
@class Point - newDistanceFrom:aPoint { ... }
+ newDistanceFrom:aPoint { ... } @end On 13 janv. 10, at 12:20, Philippe Mougin wrote:
Pour l'extension de classe dans F-Script, l'approche maintenant pressentie est celle d'une syntaxe spécifique. Par exemple, voici le code pour ajouter une méthode "print" à la classe NSObject (la classe racine sur Mac OS X):
NSObject {
{ stdout print:self printString } }
Et pour reprendre ton exemple:
Point {
- newDistanceFrom:aPoint
{ ... }
- newDistanceFrom:aPoint
{ ... } }
Philippe
Le 2 déc. 2009 à 22:37, stephane ducasse a écrit :
On Dec 2, 2009, at 1:26 PM, Philippe Mougin wrote:
Merci pour ces retours.
Le support des extensions de classe est prévu pour la prochaine version (note: on peux déjà redéfinir une classe F-Script existante). Je pense me limiter à la possibilité d'ajouter des méthodes à une classe existante.
oui override brek mais parfoi snecessaire
Je n'ai pas encore trouvé de syntaxe satisfaisante et je cherche toujours. Je ne suis pas sûr au final d'introduire une syntaxe.
Point>>newDistanceFrom: aPoint {
}
Class side
Point class >>newDistanceFrom: aPoint {
}
Il est possible que je passe par un simple message. Dans ce cas, une des possibilités que j'envisage sérieusement est d'introduire une méthode permettant de demander à une classe "d'apprendre" une méthode existant dans une autre classe. Par exemple, on pourrait écrire:
MyClass learn:#aMethod from:AnotherClass
je trouve pas cela tres cool et je prefere pepsi voir gnu syntaxe ou coral comme au dessus.
Voila où j'en suis.
-Philippe
Squeak-fr mailing list Squeak-fr@lists.squeakfoundation.org http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/squeak-fr
Salut Noury,
Pour la définition des classes, j'ai pensé à la syntaxe d'Objective-C, qui aurait pour avantage très intéressant la familiarité des développeur avec cette syntaxe. Deux raisons m'ont conduit à l'écarter:
- La syntaxe d'Ojective-C est sous optimale dans un contexte comme F-Script car elle requiert de déclarer l'interface de la classe séparément de l'implémentation (la raison en est le support pour la compilation séparée à la mode C). Dans le contexte de F-Script cela perd son sens et alourdirai significativement la définition de classe. Dans le cas d'une syntaxe inspiré d'Objective-C mais simplifié (comme dans ton exemple), j'ai considéré que le bénéfice de la familiarité se réduisait fortement voire qu'une certaine confusion pouvait avoir lieu, et qu'il était plus clair d'avoir une syntaxe repensée from scratch.
- Le parsing serai largement complexifié car dans F-Script le symbol @ est utilisé pour dénoter les messaging pattern. Il faudrait pas mal de look ahead ou bien ne pas considérer la définition de classe comme une expression (pouvant apparaitre n'importe ou dans le code et pas seulement en tant qu'instruction), ce qui ne serait pas une limitation ennuyeuse en pratique mais nuirait à la régularité du langage.
En ce qui concerne la suppression d'un niveau d'accolade, il ne me semble pas que cela soit gagnant puisqu'on remplace les accolades par "@class" et "@end".
Philippe
Le 14 janv. 2010 à 10:05, Bouraqadi Noury a écrit :
Salut Philippe,
J'imagine que tu as pensé à la solution d'objective-c avec des @. Cela enlève un niveau d'accolades supplémentaires. Pourquoi tu l'as écartée ? Cela donnerait pour la classe Point qq chose du genre
@class Point
- newDistanceFrom:aPoint
{ ... }
- newDistanceFrom:aPoint
{ ... } @end On 13 janv. 10, at 12:20, Philippe Mougin wrote:
Pour l'extension de classe dans F-Script, l'approche maintenant pressentie est celle d'une syntaxe spécifique. Par exemple, voici le code pour ajouter une méthode "print" à la classe NSObject (la classe racine sur Mac OS X):
NSObject {
{ stdout print:self printString } }
Et pour reprendre ton exemple:
Point {
- newDistanceFrom:aPoint
{ ... }
- newDistanceFrom:aPoint
{ ... } }
squeak-fr@lists.squeakfoundation.org