new var declaration syntax

This commit is contained in:
2026-05-27 20:25:58 +02:00
parent 284bc61f24
commit 4fda79f0bc
48 changed files with 450 additions and 449 deletions

View File

@@ -1,20 +1,20 @@
func part1_is_invalid_id[s: str] : bool
let len = str.len(s)
len := str.len(s)
if len % 2 != 0
return false
let first = str.substr(s, 0, len / 2)
let second = str.substr(s, len / 2, len / 2)
first := str.substr(s, 0, len / 2)
second := str.substr(s, len / 2, len / 2)
return str.equal(first, second)
func part1[ranges: Array] : void
let sum = 0
sum := 0
for i in 0..ranges->size
let parts = array.nth(ranges, i) |> str.split("-")
let start = array.nth(parts, 0) |> str.parse_i64()
let end = array.nth(parts, 1) |> str.parse_i64()
parts := array.nth(ranges, i) |> str.split("-")
start := array.nth(parts, 0) |> str.parse_i64()
end := array.nth(parts, 1) |> str.parse_i64()
for n in (start)..end+1
if part1_is_invalid_id(str.from_i64(n))
@@ -24,15 +24,15 @@ func part1[ranges: Array] : void
// had to cheat this one
func part2_is_invalid_id[s: str] : bool
let len = str.len(s)
len := str.len(s)
if len < 2
return false
for div in 1..(len / 2 + 1)
if len % div == 0
let u = str.substr(s, 0, div)
let is_repeat = true
u := str.substr(s, 0, div)
is_repeat := true
for k in 1..(len / div)
let segment = str.substr(s, k * div, div)
segment := str.substr(s, k * div, div)
if !str.equal(segment, u)
is_repeat = false
if is_repeat
@@ -40,12 +40,12 @@ func part2_is_invalid_id[s: str] : bool
return false
func part2[ranges: Array] : void
let sum = 0
sum := 0
for i in 0..ranges->size
let parts = array.nth(ranges, i) |> str.split("-")
let start = array.nth(parts, 0) |> str.parse_i64()
let end = array.nth(parts, 1) |> str.parse_i64()
parts := array.nth(ranges, i) |> str.split("-")
start := array.nth(parts, 0) |> str.parse_i64()
end := array.nth(parts, 1) |> str.parse_i64()
for n in (start)..end+1
if part2_is_invalid_id(str.from_i64(n))
@@ -54,7 +54,7 @@ func part2[ranges: Array] : void
io.println_i64(sum)
func main[] : i64
let ranges = must(io.read_text_file?("input.txt")) |> str.split(",")
ranges := must(io.read_text_file?("input.txt")) |> str.split(",")
part1(ranges)
part2(ranges)