Skip to content

Latest commit

 

History

History

functionaljs

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 

2018-01-06

성공적인 프로그래밍

  • 성공적인 프로그래밍을 하기 위해 패러다임들이 존재한다.
  • 좋은 프로그램은 확장성, 사용성, 성능 등등에 대응력이 좋다.

함수형 프로그래밍

함수형 프로그래밍은 성공적인 프로그래밍을 위해 부수 효과를 멀리하고 조합성을 강조하는 프로그래밍 패러다임이다.

  • 부수 효과(side efffect)를 멀리한다. => 순수 함수를 만든다.
  • 함수 조합성을 강조한다. => 모듈화 수준을 높인다.

객체 기준

object.method()

함수 기준

method(object)

순수 함수

파라매터들이 프로그램 실행에 영향을 미치지 않아야 한다.

파라매터들로 인해 side effect 가 없어야 된다.

입력값이 같으면 결과값도 같아야 된다.

스레드로 다루는 데이터가 불변이고, 사용하는 함수가 순수 함수라면 스레드가 아무리 많더라도 문제가 되지 않는다.

이런 이유로 순수 함수는 멀티쓰레딩에 강하다.

함수의 결과는 외부 변수들에 의해 변경되면 안된다.

일급 함수

  • 런타임 생성이 가능하다.
  • 익명으로 생성이 가능하다.
  • 함수를 반환할 수 있다.
  • 변수로 받을 수 있다.

클로저

내부 함수에서 외부 함수의 변수를 접근할 경우 내부 함수는 클로저다.