extern rand = () => i64; extern malloc = (i64) => *void; extern free = (*void) => void; import "!stdlib.src"; let init_array = (n: i64, arr: *i64) => void { let i = 0; while i < n { (*(arr + cast(*i64, i))) = rand(); i = i + 1; }; return; }; let print_array = (n: i64, arr: *i64) => void { let i = 0; while i < n { println("%d", *(arr + cast(*i64, i))); i = i + 1; }; return; }; let sort_array = (n: i64, arr: *i64) => void { let i = 0; let j = 0; while i < n { j = i + 1; while j < n { let x = *(arr + cast(*i64, i)); let y = *(arr + cast(*i64, j)); if x > y { let tmp = *(arr + cast(*i64, i)); (*(arr + cast(*i64, i))) = *(arr + cast(*i64, j)); (*(arr + cast(*i64, j))) = tmp; }; j = j + 1; }; i = i + 1; }; return; }; let main = () => i64 { let n = 10; let arr = cast(*i64, malloc(n * 8)); init_array(n, arr); println("Pre-sorted:"); print_array(n, arr); sort_array(n, arr); println("Sorted:"); print_array(n, arr); free(cast(*void, arr)); return 0; }; /* Expected stdout: Pre-sorted: ${UNSORTED_LIST} Sorted: ${SORTED_LIST} Expected return: 0 */