나태쿤 2021. 5. 9. 17:10
728x90

커링이란 간단하게 함수인데 , 인수를 하나만 받는것을 말한다.

 

다음과 같다

 

왜써요? 한다면

 

복잡한 함수를 한계단씩 표현하고자 쓰는거다

예를들어 개인적인 내생각인데

 

수학에 봣던 수형도와 비슷한것같다

 

그림..잘못그려서 미안하다

우리가 처음 서브웨이를 간적이 있을것이다 그때를 생각하면 비유가 찰지다.

브래드 빵에 어떤.. 패티가 들어가는지 그럼 거기에 야채들은 무엇을 늘건지.

거기에 소스는 무엇을 넣을것인지 . 이에따라서 수만가지 경우의수가 나올수있다.

그림에서보면 제일왼쪽에서 다음으로 넘어갈때마다 함수 하나씩 태우는 방식을 커링이라한다.

 

이래도 모르겠다면.. 코드를보자 어차피 봐야한다

 

#1 - 일반적인 함수 (매개변수가 복수개)

바로 내일 내가 월급받고 사용할 치킨주문 함수이다.

3번에 보면 변수를 chkien,coke로 두개를 받게 설정하였고

7번에서 두개의 인자값을 넣어 함수를 호출했다.

 

#2 - 커링 ( 치킨 무 추가 )

커링을 바로 보기전에 한가지 위기상황에 닥쳐보자.

치킨과 콜라는 골랐는데 치킨무가 노랑무,치킨무,홍당무 이렇게 여러개가 존재한다고 생각하자. 

마치 수형도그림처럼..

이그림에서 우리는 파랑색 체크한 부분에 놓인것이다 이제 세가지 경우가 있는데 

다른건 몰라두 우리는 블랙페퍼 치킨과 코카콜라는 반드시 선택한다는 의지가 반영되어있다.

 

커링 코드를 보자

함수안에 리턴에 함수가 또 걸려있는 스탭바의스탭구조다. 그리고 매개변수는 한개이다.

24번 라인을 보면 아까 위에서 언급한, 블랙 페퍼 치킨과 코카콜라는 반드시 먹겠다는 이지가 담겨있다.

그리고 25번에 홍당무만 선택적으로 골랐다.

이런방식이 커링이다.

 

 

#3 - 애로우 함수 사용 ES6

일단 코드의 양이 확줄었는데 이 예시를 이해하려면 애로우함수에대해서 이해가 필요하다

초보자가 사용하기에는 애로우함수가 난해하다...

하지만 36~37번 라인은 똑같은 패턴이다.

728x90