mirror of
https://github.com/janet-lang/janet
synced 2024-11-28 11:09:54 +00:00
Add array/fill
This function has similar semantics to buffer/fill.
This commit is contained in:
parent
94246f7574
commit
e28262f5ab
@ -27,7 +27,8 @@ All notable changes to this project will be documented in this file.
|
|||||||
- Add `janet_in` to C API.
|
- Add `janet_in` to C API.
|
||||||
- Add `truthy?`
|
- Add `truthy?`
|
||||||
- Add `os/environ`
|
- Add `os/environ`
|
||||||
- Add `buffer/fill`
|
- Add `buffer/fill` and `array/fill`
|
||||||
|
- Add `array/new-filled`
|
||||||
- Use `(doc)` with no arguments to see available bindings and dynamic bindings.
|
- Use `(doc)` with no arguments to see available bindings and dynamic bindings.
|
||||||
- `jpm` will use `CC` and `AR` environment variables when compiling programs.
|
- `jpm` will use `CC` and `AR` environment variables when compiling programs.
|
||||||
- Add `comptime` macro for compile time evaluation.
|
- Add `comptime` macro for compile time evaluation.
|
||||||
|
@ -137,6 +137,16 @@ static Janet cfun_array_new_filled(int32_t argc, Janet *argv) {
|
|||||||
return janet_wrap_array(array);
|
return janet_wrap_array(array);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static Janet cfun_array_fill(int32_t argc, Janet *argv) {
|
||||||
|
janet_arity(argc, 1, 2);
|
||||||
|
JanetArray *array = janet_getarray(argv, 0);
|
||||||
|
Janet x = (argc == 2) ? argv[1] : janet_wrap_nil();
|
||||||
|
for (int32_t i = 0; i < array->count; i++) {
|
||||||
|
array->data[i] = x;
|
||||||
|
}
|
||||||
|
return argv[0];
|
||||||
|
}
|
||||||
|
|
||||||
static Janet cfun_array_pop(int32_t argc, Janet *argv) {
|
static Janet cfun_array_pop(int32_t argc, Janet *argv) {
|
||||||
janet_fixarity(argc, 1);
|
janet_fixarity(argc, 1);
|
||||||
JanetArray *array = janet_getarray(argv, 0);
|
JanetArray *array = janet_getarray(argv, 0);
|
||||||
@ -257,9 +267,15 @@ static const JanetReg array_cfuns[] = {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"array/new-filled", cfun_array_new_filled,
|
"array/new-filled", cfun_array_new_filled,
|
||||||
JDOC("(array/new count &opt value)\n\n"
|
JDOC("(array/new-filled count &opt value)\n\n"
|
||||||
"Creates a new array of count elements, all set to value, which defaults to nil. Returns the new array.")
|
"Creates a new array of count elements, all set to value, which defaults to nil. Returns the new array.")
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"array/fill", cfun_array_fill,
|
||||||
|
JDOC("(array/fill arr &opt value)\n\n"
|
||||||
|
"Replace all elements of an array with value (defaulting to nil) without changing the length of the array. "
|
||||||
|
"Returns the modified array.")
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"array/pop", cfun_array_pop,
|
"array/pop", cfun_array_pop,
|
||||||
JDOC("(array/pop arr)\n\n"
|
JDOC("(array/pop arr)\n\n"
|
||||||
|
Loading…
Reference in New Issue
Block a user