Flat lets and one-argument and/or in the .fln printer are queued
This commit is contained in:
parent
d574031609
commit
d991e1986c
4
TODO.org
4
TODO.org
@ -300,6 +300,10 @@ on its own.
|
||||
Decided 2026-09-25: a match over a dyn takes keyword arms, meaning (= d :k); = and !=
|
||||
compare bools, and a match over a bool takes true/false arms, exhaustive without _.
|
||||
|
||||
** NEXT The .fln printer writes a flat let where the scope does not matter
|
||||
Decided 2026-09-25: a let whose name no later statement of its block mentions prints
|
||||
flat, not as a nested block; a one-argument and/or prints as its argument.
|
||||
|
||||
** WAIT ML-style patterns
|
||||
Held 2026-09-25 as a future direction, like the JS backend: nested destructuring,
|
||||
guards, or-patterns, literals at any depth, exhaustiveness over the nesting.
|
||||
|
||||
@ -27,19 +27,18 @@ fn selection-sort(coll: [$t]) -> () where ordered?($t)
|
||||
fn insertion-sort(coll: [$t]) -> () where ordered?($t)
|
||||
let i = 1
|
||||
let length = length(coll)
|
||||
while and(i < length)
|
||||
while i < length
|
||||
let j = i
|
||||
while j > 0
|
||||
and coll[j] < coll[dec(j)]
|
||||
let temp = coll[j]
|
||||
coll[j] = coll[dec(j)]
|
||||
coll[dec(j)] = temp
|
||||
--(j)
|
||||
while j > 0 and coll[j] < coll[dec(j)]
|
||||
let temp = coll[j]
|
||||
coll[j] = coll[dec(j)]
|
||||
coll[dec(j)] = temp
|
||||
--(j)
|
||||
++(i)
|
||||
|
||||
fn main() -> i32 = 0
|
||||
|
||||
comment():
|
||||
comment:
|
||||
insertion-sort([\I \N \S \E \R \T \I \O \N \S \O \R \T])
|
||||
insertion-sort(slice([6 2 4 9 1 9 4 5], 0, 8))
|
||||
let str = bytes("INSERTIONSORT")
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user