const a =Promise.resolve(
Promise.resolve(
Promise.resolve(1)
)
).then(log); // 1
console.log(a) // Promise {}+
오류가 있을 수 있는 상황에서의 함수 합성을 안전하게 해주는 규칙
f.g
f(g(x)) = f(g(x))
// 만약 g(x)에서 의도치않은 값(에러)가 출력된다면??
// f(g(x))도 동일한 값을 출력하게 해주는 형태
f(g(x)) = g(x)
let a = Promise.reject("hi").catch(a=>a) // a 변수에 저장된 Promise는
//에려처리상황까지 저장되버린 상태이다.
// catch()는 중복해서 넣을수없음으로 (앞의 catch()함수에서 값을 먹어버리기때문에)
// 이후에 a.catch(a=>console.log(a)) 와 같이 명령해도
// console.log 되지 않는다.
// 그러므로 변수에 할당시에는 catch없이 할당후
// 이후 필요할떄 a.catch(a=>console.log(a)) 이런식으로 원하는 위치에서 사용하자
과제를 수행하며 함수형 프로그래밍에 대해 느낀점이 있다.
사실 아직도 함수형 프로그래밍을 잘 모르겠다. 전보단 알것같은 느낌이 들지만 말그대로 느낌일뿐, 이해했다고는 할 수 없을것같다. 다만, 정말 정말 매력적인 프로그래밍 패러다임임에는 분명하다.