aboutsummaryrefslogtreecommitdiffstats
path: root/examples/charge.aup
diff options
context:
space:
mode:
authoreunhhu <[email protected]>2026-09-30 15:23:30 +0100
committereunhhu <[email protected]>2026-09-30 15:23:30 +0100
commitb8e3faaf1a3766591d31e6c5411c9e4fcc59a7a4 (patch)
tree3474ee41486141e0144a4899081a8780f69ced05 /examples/charge.aup
parentbe1122a2e8bc720bd9473c130255eba46389c883 (diff)
downloadaup-b8e3faaf1a3766591d31e6c5411c9e4fcc59a7a4.tar.gz
aup-b8e3faaf1a3766591d31e6c5411c9e4fcc59a7a4.zip
Give aup a bool: true and false, and conditions that take one
A condition was any number, non-zero being true: done was a number field, a view showed 1 for true, and done + 1 was no type error. Now bool is its own type (Pure 016, module format v6): - true and false; comparisons, text comparisons, has and ! && || give a bool. Bools are equal or not; they are no numbers and have no order. - if, conditional expressions, require, where (folds, walks, filtered tables) take a bool. Given a number, the diagnostic says how to make one: "if takes a bool, not a number: compare it, as in n != 0". - Bool states (state on = false), record fields (done = false), message, output and argument fields (ok: bool), lets, views and columns. Interpolation writes true or false. A list is not keyed by a bool. - The examples' flags are bools (charge's holding, toggle's visible, tasks' done). Checks: 20 bool diagnostics, a form using bools everywhere, an app whose every output shows true and false (states, items, views, columns, text) and whose replacement turns a number into a bool and back. Models hold bools and compare them strictly: Python's True == 1 no longer hides a 1 where a true belongs. Generated programs are typed, numbers and bools.
Diffstat (limited to 'examples/charge.aup')
-rw-r--r--examples/charge.aup6
1 files changed, 3 insertions, 3 deletions
diff --git a/examples/charge.aup b/examples/charge.aup
index d483b8f..11b6756 100644
--- a/examples/charge.aup
+++ b/examples/charge.aup
@@ -1,5 +1,5 @@
# Hold Space to charge a jump; gravity and the floor are authored here.
-state holding = 0
+state holding = false
state charge = 0
state y = 240
state velocity = 0
@@ -10,7 +10,7 @@ view amount = charge
on jump.down {
if y >= 240 {
- holding = 1
+ holding = true
charge = 0
}
}
@@ -18,7 +18,7 @@ on jump.down {
on jump.up {
if holding {
velocity = -(160 + charge * 300)
- holding = 0
+ holding = false
charge = 0
}
}