: [Squeak-fr] [ANN] Nouvelle version de Prolog
Dreyfuss Pierre-André (EDUM)
pierre-andre.dreyfuss at edu.ge.ch
Dim 6 Juil 01:35:22 UTC 2008
OUblié de dire qu'il faut aussi corriger le test testFisherCh214
(mettre les virgules côté réponses)
testFisherCh214
self assert: (String streamContents: [:str |
(Chapter2 new outputStream: str)
evalString: 'parse([#b,#b,#a,#a,#b,#a,#b])'])
=
'0 [#b,#b,#a,#a,#b,#a,#b]
0 [#b,#a,#a,#b,#a,#b]
0 [#a,#a,#b,#a,#b]
1 [#a,#b,#a,#b]
1 [#b,#a,#b]
2 [#a,#b]
2 [#b]
2 []
'.
self assert: (String streamContents: [:str |
(Chapter2 new outputStream: str)
evalString: 'parse([#b,#b,#a])'])
=
'0 [#b,#b,#a]
0 [#b,#a]
0 [#a]
'
-------- Message d'origine--------
De: squeak-fr-bounces at lists.squeakfoundation.org de la part de Dreyfuss Pierre-André (EDUM)
Date: dim. 06/07/2008 03:32
À: Squeak in french / Squeak en français
Objet : : [Squeak-fr] [ANN] Nouvelle version de Prolog
Salut Stef
Je n'ai pas tout testé mais cela semble marcher.
Il y a une petite correction à faire pour obtenir l'affichage des liste avec des virgules (comme à la lecture)
Mettre une ',' après le $ dans printOne:
ligne: aStream nextPut: $, .
printOne: aStream
car printOn: aStream.
aStream nextPut: $, .
(cdr isConsCell)
ifTrue: [cdr printOne: aStream]
ifFalse: [cdr ifNil: [^ self].
aStream nextPutAll: '| '.
cdr printOn: aStream]
Avec cette correction J'obtient avec la grammaire des listes affichées correctement:
Grammar2 ?- ph(s,p,[]).
(ph(sujet(gn(det('le', 'm'), n('chat', 'm')), 3), v('mange', 3)) ['le','chat','mange'])
(ph(sujet(gn(det('la', 'f'), n('souris', 'f')), 3), v('mange', 3)) ['la','souris','mange'])
(ph(sujet(gn(det('un', 'm'), n('chat', 'm')), 3), v('mange', 3)) ['un','chat','mange'])
(ph(sujet(gn(det('une', 'f'), n('souris', 'f')), 3), v('mange', 3)) ['une','souris','mange'])
(ph(sujet('je', 1), v('mange', 1)) ['je','mange'])
(ph(sujet('tu', 2), v('manges', 2)) ['tu','manges'])
Test pour les listes:
testPrologList
"PAD 2008/07/06 test list behaviours"
{
'eq(l,[1,2,3]),eq(l,[h|t]).' -> 'an Array(an Array([1,2,3] 1 [2,3]))'.
'eq([1,2,3],[h|t]).' -> 'an Array(an Array(1 [2,3]))'.
'eq([1,2,3,4],[1,2|q])' -> 'an Array(an Array([3,4]))'.
'eq([1,2,3,4],[1,h|q])' -> 'an Array(an Array(2 [3,4]))'.
}
do: [:assoc | self assert: ((Prolog evaluate: assoc key)asString) = assoc value asString]
Pad
_______________________________________________
Squeak-fr mailing list
Squeak-fr at lists.squeakfoundation.org
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/squeak-fr
-------------- section suivante --------------
Une pièce jointe non texte a été nettoyée...
Nom: non disponible
Type: application/ms-tnef
Taille: 4288 octets
Desc: non disponible
Url: http://lists.squeakfoundation.org/pipermail/squeak-fr/attachments/20080706/55de42ed/attachment.bin
Plus d'informations sur la liste de diffusion Squeak-fr