array indexing, nested array literals

This commit is contained in:
2025-06-29 10:36:55 +02:00
parent 26598fe6f2
commit 574b9fd37c
6 changed files with 79 additions and 61 deletions

View File

@@ -1,10 +1,5 @@
func main[] : I64
let xs: Array = [5849, 3869, 2859]
Array.push(xs, 5242)
Array.push(xs, 6533)
Array.push(xs, 4574)
for i in 0..Array.size(xs)
xs
|> Array.nth(i)
|> print_i64()
let xs: Array = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
for x in 0..3
for y in 0..3
print_i64(xs[y][x])

View File

@@ -8,16 +8,16 @@ func do_quicksort[arr: Array, low: I64, high: I64] : I64
do_quicksort(arr, i + 1, high)
func partition[arr: Array, low: I64, high: I64] : I64
let pivot: I64 = Array.nth(arr, high)
let pivot: I64 = arr[high]
let i: I64 = low - 1
for j in (low)..high
if Array.nth(arr, j) <= pivot
if arr[j] <= pivot
i = i + 1
let temp: I64 = Array.nth(arr, i)
Array.set(arr, i, Array.nth(arr, j))
let temp: I64 = arr[i]
Array.set(arr, i, arr[j])
Array.set(arr, j, temp)
let temp: I64 = Array.nth(arr, i + 1)
Array.set(arr, i + 1, Array.nth(arr, high))
let temp: I64 = arr[i + 1]
Array.set(arr, i + 1, arr[high])
Array.set(arr, high, temp)
return i + 1
@@ -25,10 +25,10 @@ func main[] : I64
let arr: Array = [340, 252, 352, 117, 650, 652, 322, 175, 714, 268, 725, 664]
for i in 0..Array.size(arr)
print_i64(Array.nth(arr, i))
print_i64(arr[i])
print("------------")
quicksort(arr)
for i in 0..Array.size(arr)
print_i64(Array.nth(arr, i))
print_i64(arr[i])

View File

@@ -1,14 +1,15 @@
func rule110_step[state: Array] : Array
let new_state: Array = []
let state_len: I64 = Array.size(state)
for i in 0..Array.size(state)
for i in 0..state_len
let left: Bool = false
if i - 1 >= 0
left = Array.nth(state, i-1)
let center: Bool = Array.nth(state, i)
left = state[i-1]
let center: Bool = state[i]
let right: Bool = false
if i + 1 < Array.size(state)
right = Array.nth(state, i+1)
if i + 1 < state_len
right = state[i+1]
Array.push(new_state, !((!left && !center && !right) || (left && !center && !right) || (left && center && right)))
@@ -17,7 +18,7 @@ func rule110_step[state: Array] : Array
func to_str[state: Array]: String
let out: String = malloc(Array.size(state))
for i in 0..Array.size(state)
if Array.nth(state, i)
if state[i]
String.set(out, i, '#')
else
String.set(out, i, ' ')