Softanza
StartFrançais
Softanza
The book · Chapter 11 · The proof of each chapter

Draw the answer

This chapter has 5 cells and writes 13 promises. In each of its four editions its cells were run in one fresh process on 2026-10-08 20:15: English, 5 cells ran, 13 promises kept; Français, 5 cells ran, 13 promises kept; العربية, 5 cells ran, 13 promises kept; Hausa, 5 cells ran, 13 promises kept. The four editions make the same promises, cell for cell. No edition stores any output.

The guard

The course's guard is course_narrated.ring(opens in a new tab): it runs every chapter in all four languages, compares the promises from one edition to the next, and has every exercise prove itself on its wrong and right answers. This page asked the same questions of the same objects, in one process inside the library, at commit 0e72e2e2c. To prove this chapter alone, from your copy of the repository:

cd libraries/stzlib/base/test/education
# run course_narrated with the repository's runtime, for this chapter:
#   course_narrated draw-the-answer

run on 2026-10-08 20:15 inside the library at commit 4a184e6f0, in 246.4 s for the whole book · The four editions of the chapter: English(opens in a new tab) · Français(opens in a new tab) · العربية(opens in a new tab) · Hausa(opens in a new tab)

The reader stores no output, by the course's own law; this page is the record of a run, made for it. The code is shown in Haro's name: where the chapter was written before the language took its present name, the name was changed and nothing else, and the chapter was run again that way. The source link leads to the text as it was written.

The cells, run

Cell 1 · 1. Show where, not only which position

Softanza
o1 = new stzString("fjharoljharodjharog")
? @@( o1.FindAll("haro") )
#--> [ 3, 9, 15 ]
? o1.vizFind("haro")
#--> fjharoljharodjharog
#--> --^-----^-----^----
Output of this run
[ 3, 9, 15 ]
fjharoljharodjharog
--^-----^-----^----

ran: the promise is kept · in all four editions

This cell in the chapter: English(opens in a new tab) · Français(opens in a new tab) · العربية(opens in a new tab) · Hausa(opens in a new tab)

Cell 2 · 2. With the numbers under the marks

Softanza
? o1.vizFindXT("haro", [ :Numbered = TRUE ])
#--> fjharoljharodjharog
#--> --^-----^-----^----
#--> 3     9     15
Output of this run
fjharoljharodjharog
--^-----^-----^----
  3     9     15

ran: the promise is kept · in all four editions

This cell in the chapter: English(opens in a new tab) · Français(opens in a new tab) · العربية(opens in a new tab) · Hausa(opens in a new tab)

Cell 3 · 3. A graph is a picture of relations

Softanza
oG = new stzGraph("kitchen")
oG {
	AddNodeXT("order", "Order")
	AddNodeXT("kitchen", "Kitchen")
	AddNodeXT("table", "Table")
	Connect("order", "kitchen")
	Connect("kitchen", "table")
}
? oG.PathExists("order", "table")
#--> TRUE
? @@( oG.Neighbors("kitchen") )
#--> [ "table" ]
oG.Show()
#--> │ Order │
#--> │ Table │
Output of this run
1
[ "table" ]
        ╭───────╮        
        │ Order │        
        ╰───────╯        
            |            
            v            
      ╭───────────╮      
      │ !Kitchen! │      
      ╰───────────╯      
            |            
            v            
        ╭───────╮        
        │ Table │        
        ╰───────╯

ran: the promise is kept · in all four editions

This cell in the chapter: English(opens in a new tab) · Français(opens in a new tab) · العربية(opens in a new tab) · Hausa(opens in a new tab)

Cell 4 · 4. How much: a bar for each dish

Softanza
oP = new stzHBarPlot([ :tea = 6, :rice = 3, :fish = 2 ])
oP.Show()
#--> Tea │ ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇
#--> Fish │ ▇▇▇▇▇▇
Output of this run
▲                   
 Tea │ ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇
Rice │ ▇▇▇▇▇▇▇▇▇         
Fish │ ▇▇▇▇▇▇            
     ╰──────────────────►

ran: the promise is kept · in all four editions

This cell in the chapter: English(opens in a new tab) · Français(opens in a new tab) · العربية(opens in a new tab) · Hausa(opens in a new tab)

Cell 5 · 5. The same bars, standing up

Softanza
oP2 = new stzVBarPlot([ :tea = 6, :rice = 3, :fish = 2 ])
oP2.SetHeight(4)
oP2.Show()
#--> Tea Rice Fish
Output of this run
▲                
│ ██             
│ ██             
│ ██   ██   ██   
│ ██   ██   ██   
╰───────────────►
  Tea Rice Fish

ran: the promise is kept · in all four editions

This cell in the chapter: English(opens in a new tab) · Français(opens in a new tab) · العربية(opens in a new tab) · Hausa(opens in a new tab)

The exercises

Every exercise proves itself: its wrong answers are refused and its right answers accepted.

ex-11-01 · Exercise 11.1 · Show where tea is

2 of 2 wrong answers refused, 2 of 2 right answers accepted

01-positions-only.ring refused · 02-the-wrong-word.ring refused · 01-vizfind.ring accepted · 02-in-one-sentence.ring accepted

The exercise's folder(opens in a new tab)

ex-11-02 · Exercise 11.2 · How much of each

2 of 2 wrong answers refused, 2 of 2 right answers accepted

01-standing-bars.ring refused · 02-forgets-a-dish.ring refused · 01-lying-bars.ring accepted · 02-the-block-form.ring accepted

The exercise's folder(opens in a new tab)