arr.data[j + 1] = x;
}
}
+
+array_fold :: proc (arr: ^[..] $T, init: $R, f: proc (T, R) -> R) -> R {
+ val := init;
+ for i: 0, arr.count do val = f(arr.data[i], val);
+ return val;
+}
+
+array_map :: proc (arr: ^[..] $T, f: proc (T) -> T) {
+ for i: 0, arr.count do arr.data[i] = f(arr.data[i]);
+}
\ No newline at end of file
[ ] All code paths return correct value
- [ ] Arrays need to be much better
+ [X] Arrays need to be much better
- Currently, they are basically just a pointer.
- The length should be stored with the pointer
- Dynamic resizing?
print_arr_details(^s.a);
print_arr_details(^s.b);
+ print("Array A sum: ");
+ print(array_fold(^s.a, 0, proc (x: i32, acc: i32) -> i32 do return x + acc;));
+ print("\n\n");
map : PtrMap;
ptrmap_init(^map);