minesweeper and rules system

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
34 messages Options
12
Reply | Threaded
Open this post in threaded view
|

Re: Prolog pour 3.10

cedreek
> ... voici donc une nouvelle version, cinq minutes après la précédente :)
>
>
> Stef "ce sont les risques du direct"
>

merci bien en tout cas car il se pourrait que j'tilise prolog pour le
projet GSoC. Pas sur ceci...

@ plus ;)

Cédrick

_______________________________________________
Squeak-fr mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/squeak-fr
Reply | Threaded
Open this post in threaded view
|

Re: Prolog pour 3.10

Stéphane Rollandin-2
cdrick a écrit :
> merci bien en tout cas car il se pourrait que j'tilise prolog pour le
> projet GSoC. Pas sur ceci...

première chose à faire: des tests !

voici d'ailleurs une troisième version, avec le Dungeon en morphic et
deux ou trois bugs en moins:

        PrologWorkspace openDemo

Stef

_______________________________________________
Squeak-fr mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/squeak-fr

PrologSPFA-3.sar (25K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

RE : Prolog pour 3.10

Dreyfuss Pierre-André (EDUM)
In reply to this post by Stéphane Rollandin-2

Bonjour


Excellente nouvelle

Je vais m'empresser de le tester.

-------- Message d'origine--------
De: [hidden email] de la part de Stéphane Rollandin
Date: dim. 08/06/2008 00:50
À: Squeak in french / Squeak en français
Objet : [Squeak-fr] Prolog pour 3.10
 
salut à tous,

je réponds ici à un message de mars dernier:

Dreyfuss Pierre-André (EDU) a écrit :
> Bonjour,
> Celà relance le problème de disposer d'un prolog  fonctionnant en Squeak.
> J'avais vu dans une discussion  une promesse de mise à jour mais 'si rien vu venir.
>
> La dernière version où prolog marche est squeak 3.6.
> Dans 3.7 celà semble marcher mais à la première erreur  tout plante et Sqeak se bloque.


en fichier joint, vous trouverez de quoi installer Prolog dans une image
récente (j'ai testé 3.8, 3.9 et 3.10)

usage: pour 3.9 et 3.10, chargez d'abord le changeset PreFixes (pour 3.8
c'est inutile), puis balancez le Prolog 13Dec1628, et enfin le PostFixes.

le PostFixes s'occupe de remplacer les tests en "class == Symbol" par
"isSymbol", nécessaire depuis l'introduction de ByteSymbol (ce qui ne
nous rajeunit pas). Le PreFixes bidoulle dans le Parser, mais rien de
grave ne vous inquiétez pas... il copie deux méthodes de 3.8 qui ont
disparu en 3.9 pour cause de pragmas ou un truc du genre.

après vous pouvez faire "PrologWorkspace openDemoFamily" et évaluer les
deux expressions. ça marche. je n'ai pas testé plus loin...


Stef



_______________________________________________
Squeak-fr mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/squeak-fr

winmail.dat (4K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: RE : Prolog pour 3.10

Stéphane Rollandin-2
Dreyfuss Pierre-André (EDU) a écrit :
> Bonjour
>
>
> Excellente nouvelle
>
> Je vais m'empresser de le tester.


la dernière version est sur SqueakMap:
http://map.squeak.org/account/copackage/cb6c7afe-d517-470f-8857-d764ef321725/autoversion/2


Stef

_______________________________________________
Squeak-fr mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/squeak-fr
Reply | Threaded
Open this post in threaded view
|

RE : Prolog pour 3.10

Dreyfuss Pierre-André (EDUM)
In reply to this post by Stéphane Rollandin-2
Bonjour.


On utilise un browser normaL pour écrire des clauses Prolog.

Le Lparser détecte au format de la méthode s'il sagit d'une méthode smalltalk ou de la syntaxe prolog.

La syntaxe prolog est très proche d'un prolog standard La principale différence est l'usage de minuscules pour les variables alors qu'un prolog standard utilise ds majuscules, ceci pour respecter les règles de smalltalk.

Le code "pseudo smalltalk" est en fait réellement du code  smalltalk car le parseur convertit la méthode écrite en prolog en la méthode smalltalk qui fait le travail dans l'environnement smalltalk. Mais l'utilisateur n'a à voir que le code prolog dans le browser, le but étant d'utiliser et de penser en prolog tout en communiquant et échangeant avec smalltalk.


C'est ce qui ne marchait plus depuis 3.7. On avait dans le browser le code smalltalk et non le code prolog.
Cela semble réparé maintenant.

Dans une méthode smalltalk on peut faire exécuter une expression prolog:

Exécute dans un workspace:


LCompiler evaluate: 'Family new :? father(x,y)'


La réponse est le même tableau que si tu avais exécuté la chaîne dans un Prolog WorkSpace:

 #(#('John' 'Mary') #('John' 'David') #('David' 'Jack') #('Arthur' 'Nancy'))

PAD
-------- Message d'origine--------
De: [hidden email] de la part de Stéphane Rollandin
Date: dim. 08/06/2008 17:18
À: Squeak in french / Squeak en français
Objet : Re: [Squeak-fr] Prolog pour 3.10
 
cdrick a écrit :
> dans le document, ca parle de LogicBrowser, il n'y en a pas dans
> l'implémentation actuelle ?   J'imagine que LParser et LCompiler sont
> censés permettre d'utiliser une browser classique... ?

à l'origine sans doute mais visiblement ce n'est plus le cas...

Stef

_______________________________________________
Squeak-fr mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/squeak-fr


_______________________________________________
Squeak-fr mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/squeak-fr

winmail.dat (5K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

RE : RE : Prolog pour 3.10

Dreyfuss Pierre-André (EDUM)
ReBonjou

Un peu de géométrie:

Installez votre prolog comme décrit précédement.
Installez le changeset ci-joint.

Ouvrez un prologWorkSpace.
Ouvrez un transcript.

Dans le prologWorkSpace
exécutez le code ci-dessous

Geom new :? initBase().
Geom new :? enonce(milieu('i',['a' ,'b'])).
Geom new :? enonce(milieu('j',['b' ,'c'])).
Geom new :? enonce(milieu('k',['c' ,'d'])).
Geom new :? enonce(milieu('l',['d' ,'a'])).

Geom new :? faits().
Geom new :? deduis().

et vous aurez dans le transcript:

Base vide
Faits
#milieu('i' ['a' 'b' ] ) : énoncé
#milieu('j' ['b' 'c' ] ) : énoncé
#milieu('k' ['c' 'd' ] ) : énoncé
#milieu('l' ['d' 'a' ] ) : énoncé
Déductions :
#paral(['b' 'd' ] ['i' 'l' ] ) : thales2
#paral(['a' 'c' ] ['i' 'j' ] ) : thales2
#paral(['b' 'd' ] ['j' 'k' ] ) : thales2
#paral(['i' 'l' ] ['j' 'k' ] ) : paralTrans3
#paral(['i' 'l' ] ['b' 'd' ] ) : paralTrans2
#paral(['j' 'k' ] ['i' 'l' ] ) : paralTrans3
#paral(['j' 'k' ] ['b' 'd' ] ) : paralTrans
#paral(['a' 'c' ] ['k' 'l' ] ) : thales2
#paral(['i' 'j' ] ['k' 'l' ] ) : paralTrans3
#paral(['i' 'j' ] ['a' 'c' ] ) : paralTrans2
#paral(['k' 'l' ] ['i' 'j' ] ) : paralTrans3
#paral(['k' 'l' ] ['a' 'c' ] ) : paralTrans
#trapeze(['b' 'd' 'i' 'l' ] ) : trapeze
#trapeze(['a' 'c' 'i' 'j' ] ) : trapeze
#trapeze(['b' 'd' 'j' 'k' ] ) : trapeze
#trapeze(['i' 'l' 'j' 'k' ] ) : trapeze
#trapeze(['a' 'c' 'k' 'l' ] ) : trapeze
#trapeze(['k' 'l' 'i' 'j' ] ) : trapeze
#parallélogramme(['i' 'j' 'k' 'l' ] ) : parallélo
Fin des déductions

Pour voir les règles, Regardez la classe Geom clauses regle

Pour le moteur d'inférence, Regardez la classe Expert.

Le tout repris de ce que j'avais fait avec Squeak 3.6

Encore un grand Merci  pour avoir sauvé Prolog.

J'ai testé celà dans la future image commune OLPC - SqueakLand de Yoshiki.(dérive d'une 3.8)

PAD

-------- Message d'origine--------
De: [hidden email] de la part de Dreyfuss Pierre-André (EDU)
Date: sam. 14/06/2008 02:21
À: Squeak in french / Squeak en français
Objet : RE : [Squeak-fr] Prolog pour 3.10
 
Bonjour.


On utilise un browser normaL pour écrire des clauses Prolog.

Le Lparser détecte au format de la méthode s'il sagit d'une méthode smalltalk ou de la syntaxe prolog.

La syntaxe prolog est très proche d'un prolog standard La principale différence est l'usage de minuscules pour les variables alors qu'un prolog standard utilise ds majuscules, ceci pour respecter les règles de smalltalk.

Le code "pseudo smalltalk" est en fait réellement du code  smalltalk car le parseur convertit la méthode écrite en prolog en la méthode smalltalk qui fait le travail dans l'environnement smalltalk. Mais l'utilisateur n'a à voir que le code prolog dans le browser, le but étant d'utiliser et de penser en prolog tout en communiquant et échangeant avec smalltalk.


C'est ce qui ne marchait plus depuis 3.7. On avait dans le browser le code smalltalk et non le code prolog.
Cela semble réparé maintenant.

Dans une méthode smalltalk on peut faire exécuter une expression prolog:

Exécute dans un workspace:


LCompiler evaluate: 'Family new :? father(x,y)'


La réponse est le même tableau que si tu avais exécuté la chaîne dans un Prolog WorkSpace:

 #(#('John' 'Mary') #('John' 'David') #('David' 'Jack') #('Arthur' 'Nancy'))

PAD
-------- Message d'origine--------
De: [hidden email] de la part de Stéphane Rollandin
Date: dim. 08/06/2008 17:18
À: Squeak in french / Squeak en français
Objet : Re: [Squeak-fr] Prolog pour 3.10
 
cdrick a écrit :
> dans le document, ca parle de LogicBrowser, il n'y en a pas dans
> l'implémentation actuelle ?   J'imagine que LParser et LCompiler sont
> censés permettre d'utiliser une browser classique... ?

à l'origine sans doute mais visiblement ce n'est plus le cas...

Stef

_______________________________________________
Squeak-fr mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/squeak-fr




_______________________________________________
Squeak-fr mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/squeak-fr

winmail.dat (14K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: RE : Prolog pour 3.10

Stéphane Rollandin-2
In reply to this post by Dreyfuss Pierre-André (EDUM)
Dreyfuss Pierre-André (EDU) a écrit :
> Le Lparser détecte au format de la méthode s'il sagit d'une méthode smalltalk ou de la syntaxe prolog.

... c'est à ce point-là que j'ai modifié le parseur: voir discussion
ci-dessous


> Le code "pseudo smalltalk" est en fait réellement du code  smalltalk car le parseur convertit la méthode écrite en prolog en la méthode smalltalk qui fait le travail dans l'environnement smalltalk. Mais l'utilisateur n'a à voir que le code prolog dans le browser, le but étant d'utiliser et de penser en prolog tout en communiquant et échangeant avec smalltalk.

le problème c'est que le source est dissocié du bytecode d'une façon qui
a pu être acceptable à une époque mais qui ne l'est plus et que les
outils comme le débuggeur, shout et le même le mécanisme de file-in ne
comprennent pas. je pense que ce serait mieux si le prolog n'était
qu'une simple extension de smalltalk, comme j'ai fait avec LispKit.
c'est beaucoup plus interopérable.

>
>
> C'est ce qui ne marchait plus depuis 3.7. On avait dans le browser le code smalltalk et non le code prolog.
> Cela semble réparé maintenant.

pas exactement: ce que j'ai fait, c'est rapprocher la syntaxe prolog de
la syntaxe smalltalk. auparavant, le nom de la méthode associée à un
prédicat était caché; il était généré en bytecode mais pas en source,
d'où le plantage de certains outils et protocoles.

auparavant, la méthode définissant les faits et clauses pour le prédicat
father avait pour nom father: , mais cela n'apparaissait pas dans les
browser. maintenant, la méthode est nommée dans le code source,
apparaissant donc de façon normale dans le browser, et son nom est
logicFather ou bien primlogicFather: si c'est une primitive prolog,
c'est à dire une méthode en smalltalk (de un argument, assoc).

c'est essentiellement ça que j'ai changé (c'est un peu brut de
décoffrage pour le moment, on peut l'optimiser de beaucoup)

>
> Dans une méthode smalltalk on peut faire exécuter une expression prolog:
>
> Exécute dans un workspace:
>
>
> LCompiler evaluate: 'Family new :? father(x,y)'
>
>
> La réponse est le même tableau que si tu avais exécuté la chaîne dans un Prolog WorkSpace:
>
>  #(#('John' 'Mary') #('John' 'David') #('David' 'Jack') #('Arthur' 'Nancy'))

oui, mais le cut ne fonctionne pas. essaie Family new :? father(x,y),!.
dans le workspace...

le problème, c'est que le modèle du Prolog Workspace est une instance de
Prolog, alors que dans Family new :? father(x,y),!. le doIt qui
implémente le cut s'attend à être exécuté dans le contexte de Family
new, ce qui n'est donc pas le cas dans le workspace. cf le code dans
LParser>>#predCut.

tout ceci est assez inélégant, et l'articulation entre instance et
classe dans Prolog et ses sous-classes peu pertinente AMHA.

je suis très tenté de revoir en profondeur l'implémentation de ce
Prolog.. :)


Stef


_______________________________________________
Squeak-fr mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/squeak-fr
Reply | Threaded
Open this post in threaded view
|

RE : RE : Prolog pour 3.10

Dreyfuss Pierre-André (EDUM)

Bonjour,

Merci pour ces informations et précision.

cela confirme mon intuition que l'adaptation de prolog aux nouveau code revisé n'était possible que par des connaisseurs des mécanisme interne de Squeak et de l'évolution des versions.

J'avais utilisé il y a 20 ans prolog avec Smalltalk V  déjà pour coupler construction de figures géométriques et déductions. Avec mon projet v-Geom de construction de figures écrit avec E-toys et prolog dans Smalltalk 3.6 , je touchait au but :-).
 
Je pense que prolog intégré à Smalltalk donne de la valeur à Smalltalk.

L'utilisation de Prolog dans l'enseignement est complémentaire à Etoys, apportant un autre type de pensée axé sur les conditions et les contraintes d'un problème  au lieu des actions à faire  pour le résoudre.

Je vais pouvoir mettre dans les pages éducatives d'anciennes activités que j'avais faites avec mes élèves,
adaptées à Squeak Prolog et continuer avec prolog couplé à DrGeo et V-Geom.



Encore merci.

-------- Message d'origine--------
De: [hidden email] de la part de Stéphane Rollandin
Date: sam. 14/06/2008 20:53
À: Squeak in french / Squeak en français
Objet : Re: RE : [Squeak-fr] Prolog pour 3.10
 
Dreyfuss Pierre-André (EDU) a écrit :
> Le Lparser détecte au format de la méthode s'il sagit d'une méthode smalltalk ou de la syntaxe prolog.

... c'est à ce point-là que j'ai modifié le parseur: voir discussion
ci-dessous


> Le code "pseudo smalltalk" est en fait réellement du code  smalltalk car le parseur convertit la méthode écrite en prolog en la méthode smalltalk qui fait le travail dans l'environnement smalltalk. Mais l'utilisateur n'a à voir que le code prolog dans le browser, le but étant d'utiliser et de penser en prolog tout en communiquant et échangeant avec smalltalk.

le problème c'est que le source est dissocié du bytecode d'une façon qui
a pu être acceptable à une époque mais qui ne l'est plus et que les
outils comme le débuggeur, shout et le même le mécanisme de file-in ne
comprennent pas. je pense que ce serait mieux si le prolog n'était
qu'une simple extension de smalltalk, comme j'ai fait avec LispKit.
c'est beaucoup plus interopérable.

>
>
> C'est ce qui ne marchait plus depuis 3.7. On avait dans le browser le code smalltalk et non le code prolog.
> Cela semble réparé maintenant.

pas exactement: ce que j'ai fait, c'est rapprocher la syntaxe prolog de
la syntaxe smalltalk. auparavant, le nom de la méthode associée à un
prédicat était caché; il était généré en bytecode mais pas en source,
d'où le plantage de certains outils et protocoles.

auparavant, la méthode définissant les faits et clauses pour le prédicat
father avait pour nom father: , mais cela n'apparaissait pas dans les
browser. maintenant, la méthode est nommée dans le code source,
apparaissant donc de façon normale dans le browser, et son nom est
logicFather ou bien primlogicFather: si c'est une primitive prolog,
c'est à dire une méthode en smalltalk (de un argument, assoc).

c'est essentiellement ça que j'ai changé (c'est un peu brut de
décoffrage pour le moment, on peut l'optimiser de beaucoup)

>
> Dans une méthode smalltalk on peut faire exécuter une expression prolog:
>
> Exécute dans un workspace:
>
>
> LCompiler evaluate: 'Family new :? father(x,y)'
>
>
> La réponse est le même tableau que si tu avais exécuté la chaîne dans un Prolog WorkSpace:
>
>  #(#('John' 'Mary') #('John' 'David') #('David' 'Jack') #('Arthur' 'Nancy'))
oui, mais le cut ne fonctionne pas. essaie Family new :? father(x,y),!.
dans le workspace...

le problème, c'est que le modèle du Prolog Workspace est une instance de
Prolog, alors que dans Family new :? father(x,y),!. le doIt qui
implémente le cut s'attend à être exécuté dans le contexte de Family
new, ce qui n'est donc pas le cas dans le workspace. cf le code dans
LParser>>#predCut.

tout ceci est assez inélégant, et l'articulation entre instance et
classe dans Prolog et ses sous-classes peu pertinente AMHA.

je suis très tenté de revoir en profondeur l'implémentation de ce
Prolog.. :)


Stef


_______________________________________________
Squeak-fr mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/squeak-fr


_______________________________________________
Squeak-fr mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/squeak-fr

winmail.dat (7K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Prolog pour 3.10

Stéphane Rollandin-2
In reply to this post by Stéphane Rollandin-2
... et voici une nouvelle version de Prolog, en fichier joint et sur
SqueakMap.
(le système de database était cassé)

j'ai ajouté quelques tests; n'oubliez pas que ce code est encore
exprérimental !


Stef

_______________________________________________
Squeak-fr mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/squeak-fr

PrologSPFA-5.sar (26K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Prolog pour 3.10

Stéphane Rollandin-2
In reply to this post by Stéphane Rollandin-2
... et encore une nouvelle version de Prolog :)


maintenant nous avons un browser spécifique à Prolog couplé à un REPL
qui s'ajuste automatiquement à la classe sélectionnée.

les réponses du REPL sont formatées: nil devient "No." et #(()) devient
"Yes.", tandis que les réponses uniques (singletons) sont imprimées
directement et les réponse multiples dispatchées sur plusieurs lignes.
l'ensemble donne une interface beaucoup plus conviviale que le Prolog
Workspace, et en prime les cut y fonctionnent...

cf fichier joint pour illustration.

j'ai aussi ajouté des tests d'après le tutoriel que l'on trouve à
http://www.csupomona.edu/~jrfisher/www/prolog_tutorial/contents.html


Stef

_______________________________________________
Squeak-fr mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/squeak-fr

PrologSPFA-6.sar (37K) Download Attachment
prolog GUI.png (19K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

RE : Prolog pour 3.10

Dreyfuss Pierre-André (EDUM)
Vraiment super.

Je vais faire une doc avec des exemples pour les débutants sur ofset.
Il y a un petit problème avec write /1  qui écrit dans le Transcript mais ne provoque plus l'affichage.

( au lieu de Transcript show:  ....   il y a Transcript Transcript nextPutAll:

Pour provoquer l'affichage il faut utiliser:
write('Super'),is(_,Transcript endEntry).

ou définir



logicWriteTranscript
"Write to the Transcript"
writeTranscript(s):-
write(s),
is(_,Transcript endEntry).


Le fait de ne pas tout afficher à chaque write permet par contre de gagner du temps lors de l'exécution et de tout afficher d'un coup.

D'autre part se pose la question de faire écrire write dans le Gui.

Soit une primitive writeGui

ou une primitive write /2 :  write(<texte cible>,<string>)

Je peux m'occuper de faire un module grammaire que je dois avoir fait en son temps pour un prolog qui n'avait  pas de grammaire.

Ce module pourra être utilisé pour convertir des textes issus de prolog standard en squeak prolog.
Pad

-------- Message d'origine--------
De: [hidden email] de la part de Stéphane Rollandin
Date: lun. 16/06/2008 15:18
À: Squeak in french / Squeak en français
Objet : [Squeak-fr] Prolog pour 3.10
 
... et encore une nouvelle version de Prolog :)


maintenant nous avons un browser spécifique à Prolog couplé à un REPL
qui s'ajuste automatiquement à la classe sélectionnée.

les réponses du REPL sont formatées: nil devient "No." et #(()) devient
"Yes.", tandis que les réponses uniques (singletons) sont imprimées
directement et les réponse multiples dispatchées sur plusieurs lignes.
l'ensemble donne une interface beaucoup plus conviviale que le Prolog
Workspace, et en prime les cut y fonctionnent...

cf fichier joint pour illustration.

j'ai aussi ajouté des tests d'après le tutoriel que l'on trouve à
http://www.csupomona.edu/~jrfisher/www/prolog_tutorial/contents.html


Stef

_______________________________________________
Squeak-fr mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/squeak-fr
Reply | Threaded
Open this post in threaded view
|

Re: RE : Prolog pour 3.10

Stéphane Rollandin-2
j'ai redéfini write/1 et nl/0 pour qu'ils émettent sur le outputstream
du Prolog. c'est dans la dernière version sur SqueakMap (ça va très vite
en ce moment :)

par défault on a donc écriture dans le REPL. reste à rediriger vers le
Transcript lorsqu'on le décide, ce n'est pas encore implémenté.

Stef


Dreyfuss Pierre-André (EDU) a écrit :

> Vraiment super.
>
> Je vais faire une doc avec des exemples pour les débutants sur ofset.
> Il y a un petit problème avec write /1  qui écrit dans le Transcript mais ne provoque plus l'affichage.
>
> ( au lieu de Transcript show:  ....   il y a Transcript Transcript nextPutAll:
>
> Pour provoquer l'affichage il faut utiliser:
> write('Super'),is(_,Transcript endEntry).
>
> ou définir
>
>
>
> logicWriteTranscript
> "Write to the Transcript"
> writeTranscript(s):-
> write(s),
> is(_,Transcript endEntry).
>
>
> Le fait de ne pas tout afficher à chaque write permet par contre de gagner du temps lors de l'exécution et de tout afficher d'un coup.
>
> D'autre part se pose la question de faire écrire write dans le Gui.
>
> Soit une primitive writeGui
>
> ou une primitive write /2 :  write(<texte cible>,<string>)
>
> Je peux m'occuper de faire un module grammaire que je dois avoir fait en son temps pour un prolog qui n'avait  pas de grammaire.
>
> Ce module pourra être utilisé pour convertir des textes issus de prolog standard en squeak prolog.
> Pad
>
> -------- Message d'origine--------
> De: [hidden email] de la part de Stéphane Rollandin
> Date: lun. 16/06/2008 15:18
> À: Squeak in french / Squeak en français
> Objet : [Squeak-fr] Prolog pour 3.10
>  
> ... et encore une nouvelle version de Prolog :)
>
>
> maintenant nous avons un browser spécifique à Prolog couplé à un REPL
> qui s'ajuste automatiquement à la classe sélectionnée.
>
> les réponses du REPL sont formatées: nil devient "No." et #(()) devient
> "Yes.", tandis que les réponses uniques (singletons) sont imprimées
> directement et les réponse multiples dispatchées sur plusieurs lignes.
> l'ensemble donne une interface beaucoup plus conviviale que le Prolog
> Workspace, et en prime les cut y fonctionnent...
>
> cf fichier joint pour illustration.
>
> j'ai aussi ajouté des tests d'après le tutoriel que l'on trouve à
> http://www.csupomona.edu/~jrfisher/www/prolog_tutorial/contents.html
>
>
> Stef
>
> _______________________________________________
> Squeak-fr mailing list
> [hidden email]
> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/squeak-fr
>
>


_______________________________________________
Squeak-fr mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/squeak-fr
Reply | Threaded
Open this post in threaded view
|

Re: RE : Prolog pour 3.10

Stéphane Rollandin-2

>> ou une primitive write /2 :  write(<texte cible>,<string>)

ou bien write(<string>, <stream>), comme en Lisp ?

Stef

_______________________________________________
Squeak-fr mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/squeak-fr
Reply | Threaded
Open this post in threaded view
|

RE : RE : Prolog pour 3.10

Dreyfuss Pierre-André (EDUM)
Dans swi prolog on a :

write(+Stream, +Term)
    Write Term to Stream.
Je pense qu'il est mieux de garder l'odre des termes en Prolog, ce sera plus facile de convertir du prolog standard vers squeak prolog.

En fait je ne pensais pas aux fichers, mais à écrire dans des textMorph.

pad
-------- Message d'origine--------
De: [hidden email] de la part de Stéphane Rollandin
Date: mer. 18/06/2008 13:34
À: Squeak in french / Squeak en français
Objet : Re: RE : [Squeak-fr] Prolog pour 3.10
 

>> ou une primitive write /2 :  write(<texte cible>,<string>)

ou bien write(<string>, <stream>), comme en Lisp ?

Stef

_______________________________________________
Squeak-fr mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/squeak-fr


_______________________________________________
Squeak-fr mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/squeak-fr

winmail.dat (4K) Download Attachment
12