@@ 12-21 (lines=10) @@ | ||
9 | * |
|
10 | * @return mixed |
|
11 | */ |
|
12 | function drop(/* ...$args */) |
|
13 | { |
|
14 | $args = func_get_args(); |
|
15 | ||
16 | $drop = function ($n, array $xs) { |
|
17 | return array_slice($xs, $n); |
|
18 | }; |
|
19 | ||
20 | return call_user_func_array(partial($drop), $args); |
|
21 | } |
|
22 |
@@ 12-22 (lines=11) @@ | ||
9 | * |
|
10 | * @return mixed |
|
11 | */ |
|
12 | function each(/* ...$args */) |
|
13 | { |
|
14 | $args = func_get_args(); |
|
15 | ||
16 | $each = function (callable $fn, array $xs) { |
|
17 | array_walk($xs, $fn); |
|
18 | return $xs; |
|
19 | }; |
|
20 | ||
21 | return call_user_func_array(partial($each), $args); |
|
22 | } |
|
23 |
@@ 12-21 (lines=10) @@ | ||
9 | * |
|
10 | * @return mixed |
|
11 | */ |
|
12 | function prepend(/* ...$args */) |
|
13 | { |
|
14 | $args = func_get_args(); |
|
15 | ||
16 | $prepend = function ($x, array $xs) { |
|
17 | return array_merge([$x], $xs); |
|
18 | }; |
|
19 | ||
20 | return call_user_func_array(partial($prepend), $args); |
|
21 | } |
|
22 |
@@ 12-21 (lines=10) @@ | ||
9 | * |
|
10 | * @return mixed |
|
11 | */ |
|
12 | function take(/* ...$args */) |
|
13 | { |
|
14 | $args = func_get_args(); |
|
15 | ||
16 | $take = function ($n, array $xs) { |
|
17 | return array_slice($xs, 0, $n); |
|
18 | }; |
|
19 | ||
20 | return call_user_func_array(partial($take), $args); |
|
21 | } |
|
22 |