currying, composition

Knoa·2024년 1월 10일

curring 과 composition 활용으로 함수형 프로그래밍이 가능하다.

const person = {
  firstName: "no",
  lastName: "ka",
  nickname: "john",
};

const getPerson = {
  name: (obj) => {
    console.log(obj.firstName);
    return obj;
  },
  all: (obj) => {
    console.log(obj);
    return;
  },
};

const setPerson = {
  nickname: (obj) => {
    console.log("update obj nickname");
    obj.nickname = "newNickname";
    return obj;
  },
  name: (obj) => {
    obj.name = "newName";
    return obj;
  },
};

const compose =
  (...fns) =>
  (obj) =>
    fns.reduce((acc: any, f: any) => f(acc), obj);

compose(
  getPerson.name,
  setPerson.nickname,
  setPerson.name,
  getPerson.all
)(person);
profile
SW 개발자

0개의 댓글