728x90

프로그래밍 패러다임이란, 프로그래밍 언어들을 특징을 기반으로 분류하는 방법론이다.

각 언어는 여러 패러다임에 속할 수 있다.(파이썬은 함수형이기도하고 객체지향이기도하고...)

프로그래머가 프로그래밍의 관점을 갖게 해주고 결정하는 역할을 한다.

 

Declarative와 Imperative의 세부 분류와 각각에서의 중요 키워드를 정리한다.

 

Declarative(선언형)

  Functional(함수형, 순수함수(Pure function), 부작용(side-effects), 고계함수(Hihger-order function), 커링(currying), 컴비네이터(combinator))

 

Imperative(명령형)

  Procedural(절차형)

  Object-oriented(객체지향형, 추상화(Abstraction), 인터페이스(Interface), 추상클래스(Abstact class), 캡슐화(Encapsulation), 상속(Inheritance), 다형성(Polymorphism, Overriding, Overloading))

기타:

 

절차형 VS 객체지향형

"절차지향 프로그래밍은 프로그램의 순서와 흐름을 먼저 세우고 필요한 자료구조와 함수들을 설계하는 방식이고, 객체지향 프로그래밍은 반대로 자료구조와 이를 중심으로 한 모듈들을 먼저 설계한 다음에 이들의 실행순서와 흐름을 짜는 방식이다" 

 

Higher-order function이란, argument내에 function이 존재하거나 return에 function인 function

Combinator란, argument가 function이나 combinator로만 구성된 higher-order function

 

참고자료:

 

절차지향과 객체지향에 관한 고찰

누군가 내게 자바의 특징을 말해보라고 묻는다면 무의식적으로 객체지향 언어라고 말할 것이다. 그만큼 '자바 == 객체지향 언어'라는 인식이 강하게 박혔기 때문이다. 그러나 남에게 핵심을 간

gbsb.tistory.com

 

 

객체지향의 4대 특성(캡슐화,상속,추상화,다형성)

캡슐화 비슷한 역할을 하는 속성과 메소드들을 하나의 클래스로 모은것을 캡슐화 라고 한다. 캡슐화에 속한 개념으로 정보 은닉이라는것이 있는데, 캡슐 내부의 로직이나 변수들을 감추고 외부

simsimjae.tistory.com

 

 

다형성에 대해서 설명해보세요.

Overriding? Overloading? | 다향성에 대해서 설명해보세요. 객체지향 프로그래밍의 특징 중 하나인 다형성(polymorphis)은 상속을 통해 기능을 확장하거나 변경하는 것을 가능하게 해 주고, 같은 클래스

brunch.co.kr

 

 

 

Higher Order Functions

Learning Outcomes

tgdwyer.github.io

 

728x90

+ Recent posts