function reduce( $list, $fn, $memo )
{
let memo = $memo;
each( $list, ( $item ) => memo = $fn( memo, $item ));
return memo;
}
function each( $list, $fn ){
for( let item of $list ){
$fn( item );
}
}
function pipe()
{
let fns = arguments;
return ( arg ) => reduce( fns, ( arg, fn ) => fn( arg ), arg );
}
let f1 = pipe(
( a ) => a + 1,
( a ) => a + 2,
( a ) => a * a
);
console.log( f1( 1 ));
console.log( f1( 2 ));
'frontend > Java Script' 카테고리의 다른 글
Javascript - 이론 : 순수함수, 일급함수 (0) | 2019.03.15 |
---|---|
5. 함수형 프로그래밍 - reduce (0) | 2019.03.15 |
Javascript - 클로져( Closure ) (0) | 2019.03.14 |
4. 함수형 프로그래밍 - each (0) | 2019.03.14 |
3. 함수형 프로그래밍 - filter + map (0) | 2019.03.14 |