renamed some functions in stdlib/arr.sl and made examples/snake.sl use the functions from stdlib/arr.sl instead of custom ones
This commit is contained in:
@@ -19,22 +19,22 @@ word main
|
||||
dup arr_len puti cr
|
||||
dup arr_cap puti cr
|
||||
|
||||
# arr_get
|
||||
dup 0 arr_get puti cr
|
||||
dup 1 arr_get puti cr
|
||||
dup 2 arr_get puti cr
|
||||
# dyn_arr_get
|
||||
dup 0 dyn_arr_get puti cr
|
||||
dup 1 dyn_arr_get puti cr
|
||||
dup 2 dyn_arr_get puti cr
|
||||
|
||||
# arr_set
|
||||
dup 99 1 arr_set
|
||||
dup 1 arr_get puti cr
|
||||
# dyn_arr_set
|
||||
dup 99 1 dyn_arr_set
|
||||
dup 1 dyn_arr_get puti cr
|
||||
|
||||
# arr_reserve (with len > 0 so element copy path is exercised)
|
||||
dup 8 arr_reserve
|
||||
dup arr_cap puti cr
|
||||
dup arr_len puti cr
|
||||
dup 0 arr_get puti cr
|
||||
dup 1 arr_get puti cr
|
||||
dup 2 arr_get puti cr
|
||||
dup 0 dyn_arr_get puti cr
|
||||
dup 1 dyn_arr_get puti cr
|
||||
dup 2 dyn_arr_get puti cr
|
||||
|
||||
# arr_pop (including empty pop)
|
||||
arr_pop puti cr
|
||||
@@ -43,16 +43,16 @@ word main
|
||||
arr_pop puti cr
|
||||
dup arr_len puti cr
|
||||
|
||||
arr_free
|
||||
dyn_arr_free
|
||||
|
||||
# arr_to_dyn (convert std list to dynamic array)
|
||||
[ 7 8 9 ] dup arr_to_dyn
|
||||
dup arr_len puti cr
|
||||
dup arr_cap puti cr
|
||||
dup 0 arr_get puti cr
|
||||
dup 1 arr_get puti cr
|
||||
dup 2 arr_get puti cr
|
||||
arr_free
|
||||
dup 0 dyn_arr_get puti cr
|
||||
dup 1 dyn_arr_get puti cr
|
||||
dup 2 dyn_arr_get puti cr
|
||||
dyn_arr_free
|
||||
|
||||
# free list allocation: bytes = (len + 1) * 8
|
||||
dup @ 1 + 8 * free
|
||||
@@ -64,21 +64,21 @@ word main
|
||||
dup 2 arr_push
|
||||
|
||||
dup dyn_arr_sorted
|
||||
dup 0 arr_get puti cr
|
||||
dup 1 arr_get puti cr
|
||||
dup 2 arr_get puti cr
|
||||
arr_free
|
||||
dup 0 dyn_arr_get puti cr
|
||||
dup 1 dyn_arr_get puti cr
|
||||
dup 2 dyn_arr_get puti cr
|
||||
dyn_arr_free
|
||||
|
||||
dup 0 arr_get puti cr
|
||||
dup 1 arr_get puti cr
|
||||
dup 2 arr_get puti cr
|
||||
dup 0 dyn_arr_get puti cr
|
||||
dup 1 dyn_arr_get puti cr
|
||||
dup 2 dyn_arr_get puti cr
|
||||
|
||||
# dyn_arr_sort (alias) sorts in place
|
||||
dyn_arr_sort
|
||||
dup 0 arr_get puti cr
|
||||
dup 1 arr_get puti cr
|
||||
dup 2 arr_get puti cr
|
||||
arr_free
|
||||
dup 0 dyn_arr_get puti cr
|
||||
dup 1 dyn_arr_get puti cr
|
||||
dup 2 dyn_arr_get puti cr
|
||||
dyn_arr_free
|
||||
|
||||
# dyn_arr_sorted (alias) returns a sorted copy
|
||||
5 arr_new
|
||||
@@ -87,13 +87,13 @@ word main
|
||||
dup 6 arr_push
|
||||
|
||||
dup dyn_arr_sorted
|
||||
dup 0 arr_get puti cr
|
||||
dup 1 arr_get puti cr
|
||||
dup 2 arr_get puti cr
|
||||
arr_free
|
||||
dup 0 dyn_arr_get puti cr
|
||||
dup 1 dyn_arr_get puti cr
|
||||
dup 2 dyn_arr_get puti cr
|
||||
dyn_arr_free
|
||||
|
||||
dup 0 arr_get puti cr
|
||||
dup 1 arr_get puti cr
|
||||
dup 2 arr_get puti cr
|
||||
arr_free
|
||||
dup 0 dyn_arr_get puti cr
|
||||
dup 1 dyn_arr_get puti cr
|
||||
dup 2 dyn_arr_get puti cr
|
||||
dyn_arr_free
|
||||
end
|
||||
|
||||
@@ -4,22 +4,22 @@ import ../stdlib/arr.sl
|
||||
|
||||
word main
|
||||
[ 4 1 3 2 ] dup arr_sort
|
||||
dup 0 arr_get_static puti cr
|
||||
dup 1 arr_get_static puti cr
|
||||
dup 2 arr_get_static puti cr
|
||||
dup 3 arr_get_static puti cr
|
||||
arr_static_free
|
||||
dup 0 arr_get puti cr
|
||||
dup 1 arr_get puti cr
|
||||
dup 2 arr_get puti cr
|
||||
dup 3 arr_get puti cr
|
||||
arr_free
|
||||
|
||||
[ 9 5 7 ] dup arr_sorted
|
||||
dup 0 arr_get_static puti cr
|
||||
dup 1 arr_get_static puti cr
|
||||
dup 2 arr_get_static puti cr
|
||||
dup 0 arr_get puti cr
|
||||
dup 1 arr_get puti cr
|
||||
dup 2 arr_get puti cr
|
||||
|
||||
swap
|
||||
dup 0 arr_get_static puti cr
|
||||
dup 1 arr_get_static puti cr
|
||||
dup 2 arr_get_static puti cr
|
||||
dup 0 arr_get puti cr
|
||||
dup 1 arr_get puti cr
|
||||
dup 2 arr_get puti cr
|
||||
|
||||
arr_static_free
|
||||
arr_static_free
|
||||
arr_free
|
||||
arr_free
|
||||
end
|
||||
|
||||
@@ -5,13 +5,13 @@ import ../stdlib/arr.sl
|
||||
# Get element from static array, preserving the array pointer
|
||||
# [*, arr | i] -> [*, arr | value]
|
||||
word aget
|
||||
over swap arr_get_static
|
||||
over swap arr_get
|
||||
end
|
||||
|
||||
# Set element in static array, preserving the array pointer
|
||||
# [*, arr, value | i] -> [* | arr]
|
||||
word aset
|
||||
rot dup >r -rot arr_set_static r>
|
||||
rot dup >r -rot arr_set r>
|
||||
end
|
||||
|
||||
# Swap elements at indices i and j in a static array
|
||||
@@ -86,7 +86,7 @@ end
|
||||
word print_arr
|
||||
dup @ 0
|
||||
while 2dup > do
|
||||
2 pick over arr_get_static puti cr
|
||||
2 pick over arr_get puti cr
|
||||
1 +
|
||||
end
|
||||
2drop drop
|
||||
|
||||
Reference in New Issue
Block a user