Code Duplication    Length = 22-24 lines in 2 locations

src/flatten.php 1 location

@@ 10-31 (lines=22) @@
7
 *
8
 * @return mixed
9
 */
10
function flatten()
11
{
12
    $args = func_get_args();
13
14
    $flatten = function (array $ls) {
15
        return array_reduce($ls, function ($carry, $curr) {
16
            if (is_array($curr)) {
17
                return array_merge($carry, flatten($curr));
18
            }
19
20
            $carry[] = $curr;
21
22
            return $carry;
23
        }, []);
24
    };
25
26
    return call_user_func_array(curry($flatten), $args);
27
}
28

src/pipe.php 1 location

@@ 13-36 (lines=24) @@
10
 *
11
 * @return mixed
12
 */
13
function pipe()
14
{
15
    $ls = func_get_args();
16
17
    $pipe = function (array $ls) {
18
        return array_reduce($ls, function ($carry, $fn) {
19
            if (is_null($carry)) {
20
                return $fn;
21
            }
22
23
            return function () use ($carry, $fn) {
24
                $args = func_get_args();
25
26
                return $fn(call_user_func_array($carry, $args));
27
            };
28
        });
29
    };
30
31
    return call_user_func(curry($pipe), $ls);
32
}
33