: [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