본문으로 바로가기

함수형 프로그래밍

category Computer Science 2021. 6. 17. 17:14

블로그를 참고하여 작성한 글

 

[프로그래밍] 함수형 프로그래밍(Functional Programming) 이란?

1. 함수형 프로그래밍(Functional Programming)에 대한 이해 [ 프로그래밍 패러다임(Programming Paradigm) ] 프로그래밍 패러다임(Programming Paradigm)은 프로그래머에게 프로그래밍의 관점을 갖게 하고 코드를..

mangkyu.tistory.com

함수형 프로그래밍

절차적, 객체 지향과 같은 패러다임 중 하나 이다

함수형 프로그래밍은 이전에 다루었던 선언형 프로그래밍의 범주에 속해있다

간단하게 정의하면 대입문이 없는 프로그래밍을 함수형 프로그래밍이라고 한다

용어

함수형 프로그래밍이 무엇인지 알아보기 전에 자주 쓰이는 용어들 부터 알아보자

사이드 이펙트

사이드 이펙트란 다음과 같은 변화가 발생하는 것을 이야기한다

  • 변수의 값이 변경됨
  • 객체의 필드 값이 수정됨
  • 자료구조를 제자리에서 수정함
  • 예외나 에러가 발생함

순수 함수

위에서 알아본 사이드 이펙트가 발생하지 않는 함수를 순수 함수 라고 부른다

-이런 특징을 가진 순수 함수를 사용하면 Thread에 안정성을 보장받을 수 있고 병렬 처리를 동기화 없이 진행할 수 있다-

1급 객체

1급 객체란 다음과 같은 특징을 가진 객체를 말한다

  • 변수나 데이터 구조 안에 담을 수 있다
  • 파라미터로 전달 할 수 있다
  • 반환값으로 사용할 수 있다
  • 할당에 사용된 이름과 무관하게 고유한 구별이 가능하다

함수형 프로그래밍에서는 함수를 1급 객체로 취급하기 때문에 함수가 위와 같은 특성을 다 가지고 있다

참조 투명성

  • 동일한 인자에 대해서 항상 동일한 결과를 반환해야한다
  • 참조 투명성에 통해 데이터들은 불변성을 띤다

위의 용어들로 함수형 프로그래밍의 특징을 설명하면 다음과 같이 요약할 수 있다

사이드 이펙트가 없는 순수 함수를 1급 객체로 간주하여 파라미터로 넘기거나 반환값으로 사용할 수 있으며, 참조 투명성을 지킬 수 있다

이러한 특징들로 인해서 함수가 사이드 이펙트를 일으키지 않고, 동일한 인자에 동일한 결과를 반환하기 때문에 함수의 예측이 가능하게 하는 프로그래밍을 함수형 프로그래밍이라고 부른다

'Computer Science' 카테고리의 다른 글

OSI 7 계층  (0) 2021.06.27
프로세스, 스레드  (0) 2021.06.21
컴퓨터의 구성  (0) 2021.06.12
절차적 프로그래밍 vs 객체지향 프로그래밍  (0) 2021.06.10
명령형 프로그래밍 vs 선언형 프로그래밍  (0) 2021.06.09