TIL(Today I Learned)

12월 17일(목)

학습내용

  • 클로저(C언어에서는 Block)
    • 코드의 블록
    • 일급 객체: 전달인자, 변수, 상수 등으로 저장, 전달이 가능
    • 함수: 이름이 있는 클로저 (클로저의 부분 집함)
    • 매개변수, 반환 타입 생략 가능
    • return 키워드 생략 가능
    • 축약된 전달인자 이름을 사용 가능
    • { (매개변수) → 반환 타입 in 실행코드 }
    • 후행클로저: 클로저를 입력 매개변수에 넣으면 코드가 복잡해지니까 코드 맨 마지막 부분에 작성한 클로저
  • 고차함수 : 함수를 인자로 받거나 함수를 반환하는 함수.
    • map, filter, reduce 등이 있다.
  • 고차함수 사용상 이점
    • 코드가 간결해진다.
    • 변수를 사용하지 않고 상수로 다 해결이 가능하다는 장점이 있다. (상수만 사용하면 변수를 사용하는 것보다 성능상으로 유리하다고 한다.)
  • 함수형 프로그래밍 VS 객체지향 프로그래밍
    • 함수형 프로그래밍은 상태를 확인하지 않아도 되기 때문에 병렬처리에 유리하다.
    • 객체 지향프로그램의 단점은 객체의 상태값을 확인해줘야한다는 점 때문에 대규모의 연산할 때 불리하다.

문제점/고민한점

  • 일급 객체라는 것이 정확히 무슨 뜻일까? 일급이 있으면 이급, 삼급도 있는건가?

해결방법

  • 일급 객체라는 것이 정확히 무슨 뜻일까? 일급이 있으면 이급, 삼급도 있는건가?
    • 일급 객체는 “프로그래밍 언어”에서의 용어이다. (영어로는 First-class citizen(object)이다.)
    • Christopher Strachey이 1960년대에 제시한 개념이다.
    • 다른 객체들에서 일반적으로 적용되는 연산이 모두 가능한 객체를 일급 객체라고 한다.
    • 일급객체는 입력값(매개변수)으로 전달할수 있고, 함수로 부터 반환값이 가능하며, 변수에 대입 및 수정이 가능하다.
    • 이급, 삼급 객체도 있지만 일급 객체 처럼 널리 사용되지는 않는다.

참고