Softanza
DémarrerEnglish
Softanza
Le livre · Chapitre 13 · La preuve de chaque chapitre

La question du manque

Ce chapitre a 6 cellules et écrit 10 promesses. Dans chacune de ses quatre éditions, ses cellules ont été exécutées dans un processus neuf le 2026-10-08 20:15 : English, 6 cellules exécutées, 10 promesses tenues; Français, 6 cellules exécutées, 10 promesses tenues; العربية, 6 cellules exécutées, 10 promesses tenues; Hausa, 6 cellules exécutées, 10 promesses tenues. Les quatre éditions font les mêmes promesses, cellule pour cellule. Aucune édition ne stocke de sortie.

Le garde

Le garde du cours est course_narrated.ring(s'ouvre dans un nouvel onglet) : il exécute chaque chapitre dans les quatre langues, compare les promesses d'une édition à l'autre, et fait prouver chaque exercice sur ses mauvaises et ses bonnes réponses. Cette page a posé les mêmes questions aux mêmes objets, dans un seul processus à l'intérieur de la bibliothèque, au commit 0e72e2e2c. Pour prouver ce chapitre seul, depuis votre copie du dépôt :

cd libraries/stzlib/base/test/education
# exécutez course_narrated avec le moteur d'exécution du dépôt, pour ce chapitre :
#   course_narrated the-gap-question

exécuté le 2026-10-08 20:15 dans la bibliothèque au commit 4a184e6f0, en 246.4 s pour tout le livre · Les quatre éditions du chapitre : English(s'ouvre dans un nouvel onglet) · Français(s'ouvre dans un nouvel onglet) · العربية(s'ouvre dans un nouvel onglet) · Hausa(s'ouvre dans un nouvel onglet)

Le lecteur ne stocke aucune sortie, par la loi du cours ; cette page est le compte rendu d'une exécution, faite pour elle. Le code des cellules est celui de l'édition anglaise ; les titres viennent de l'édition française. Les quatre éditions font les mêmes promesses, cellule pour cellule.

Les cellules, exécutées

Cellule 1 · 1. Déclarer un objectif

Softanza
oRest = new stzKnowledgeGraph("restaurant")
oRest.Know("margherita", "dish").Know("tiramisu", "dish")
oRest.AddConversationQ("setup").SetGoal(StzGoalQ().RequireEach("dish", "contains"))
? len( oRest.GapsIn("setup") )
#--> 2
Sortie de cette exécution
2

exécutée : la promesse est tenue · dans les quatre éditions

Cette cellule dans le chapitre : English(s'ouvre dans un nouvel onglet) · Français(s'ouvre dans un nouvel onglet) · العربية(s'ouvre dans un nouvel onglet) · Hausa(s'ouvre dans un nouvel onglet)

Cellule 2 · 2. Softanza demande, et dit pourquoi

Softanza
aQ = oRest.AskInXT("setup")
? aQ[:question]
#--> What does 'margherita' have for 'contains'?  (why: every dish needs 'contains')
Sortie de cette exécution
What does 'margherita' have for 'contains'?  (why: every dish needs 'contains')

exécutée : la promesse est tenue · dans les quatre éditions

Cette cellule dans le chapitre : English(s'ouvre dans un nouvel onglet) · Français(s'ouvre dans un nouvel onglet) · العربية(s'ouvre dans un nouvel onglet) · Hausa(s'ouvre dans un nouvel onglet)

Cellule 3 · 3. Vous répondez avec des mots, et le monde grandit

Softanza
aV = oRest.ReplyIn("setup", "tomato and mozzarella")
? @@( aV[:admitted] )
#--> [ "tomato", "mozzarella" ]
? @@( oRest.Query([ "margherita", "contains", "?o" ]) )
#--> [ "tomato", "mozzarella" ]
? len( oRest.GapsIn("setup") )
#--> 1
Sortie de cette exécution
[ "tomato", "mozzarella" ]
[ "tomato", "mozzarella" ]
1

exécutée : la promesse est tenue · dans les quatre éditions

Cette cellule dans le chapitre : English(s'ouvre dans un nouvel onglet) · Français(s'ouvre dans un nouvel onglet) · العربية(s'ouvre dans un nouvel onglet) · Hausa(s'ouvre dans un nouvel onglet)

Cellule 4 · 4. La question suivante propose ce qu'elle sait déjà

Softanza
aQ2 = oRest.AskInXT("setup")
? aQ2[:question]
#--> Which 'contains' does 'tiramisu' have? (1) tomato  (2) mozzarella -- or answer freely.  (why: every dish needs 'contains')
Sortie de cette exécution
Which 'contains' does 'tiramisu' have? (1) tomato  (2) mozzarella -- or answer freely.  (why: every dish needs 'contains')

exécutée : la promesse est tenue · dans les quatre éditions

Cette cellule dans le chapitre : English(s'ouvre dans un nouvel onglet) · Français(s'ouvre dans un nouvel onglet) · العربية(s'ouvre dans un nouvel onglet) · Hausa(s'ouvre dans un nouvel onglet)

Cellule 5 · 5. Demander à la bibliothèque comment elle appelle ce que vous voulez dire

Softanza
oDoc = StzSelfDocQ("stzList")
? oDoc.HowTo("remove duplicates")
#--> Q([...]).RemoveDuplicates()   -- composed by grammar (remove duplicates)
? oDoc.HasMethod("DuplicatesRemoved")
#--> TRUE
Sortie de cette exécution
Q([...]).RemoveDuplicates()   -- composed by grammar (remove duplicates)
1

exécutée : la promesse est tenue · dans les quatre éditions

Cette cellule dans le chapitre : English(s'ouvre dans un nouvel onglet) · Français(s'ouvre dans un nouvel onglet) · العربية(s'ouvre dans un nouvel onglet) · Hausa(s'ouvre dans un nouvel onglet)

Cellule 6 · 6. Expliquer une méthode, et refuser une méthode inconnue

Softanza
? StzLeft( oDoc.ExplainMethod("DuplicatesRemoved"), 20 )
#--> DuplicatesRemoved --
? oDoc.ExplainMethod("NoSuchThing")
#--> No method 'NoSuchThing' in stzList.
Sortie de cette exécution
DuplicatesRemoved --
No method 'NoSuchThing' in stzList.

exécutée : la promesse est tenue · dans les quatre éditions

Cette cellule dans le chapitre : English(s'ouvre dans un nouvel onglet) · Français(s'ouvre dans un nouvel onglet) · العربية(s'ouvre dans un nouvel onglet) · Hausa(s'ouvre dans un nouvel onglet)

Les exercices

Chaque exercice s'éprouve lui-même : ses mauvaises réponses sont refusées et ses bonnes acceptées.

ex-13-01 · Exercice 13.1 · Combler un manque

2 mauvaises réponses refusées sur 2, 2 bonnes acceptées sur 2

01-never-answers.ring refusée · 02-prints-the-question.ring refusée · 01-answer-in-words.ring acceptée · 02-answer-with-a-list.ring acceptée

Le dossier de l'exercice(s'ouvre dans un nouvel onglet)

ex-13-02 · Exercice 13.2 · Demandez à la bibliothèque

2 mauvaises réponses refusées sur 2, 2 bonnes acceptées sur 2

01-another-intent.ring refusée · 02-explains-instead.ring refusée · 01-howto.ring acceptée · 02-howto-on-an-object.ring acceptée

Le dossier de l'exercice(s'ouvre dans un nouvel onglet)