Android/Kotlin

Lambdas와 함수형프로그래밍

불타는고굼이 2020. 7. 19. 12:07
반응형

함수형 프로그래밍이 추구하는 것

함수나 객체의 mutable(변함)

immutable(불변)을 관리하여 side effect를 줄이고자 함.

수학적인 사고로 코드를 간결하게 하고자 함

변수나 객체를 여기저기서 건들지 말자 (실행된 함수의 결과는 동일해야함)

 

순수함수

결과가 같은 함수, 외부 래퍼런스를 사용하지 않는 함수

입력된 값의 결과는 언제나 같아야함

전역적 참고 x

입력받아 처리

변수,객체,함수 모두

 

고차함수

함수형 변수를 입력받고 함수형 변수를 리턴하는 함수

상태 = 조건문 없는 순차적인 프로그래밍을 위해 함수를 받고 넘겨주는 구조

 

1등시민

일종의 정책적인 단어, 함수형 언어에서 함수가 가져야할 중요한 기능에 대해서 강조한 것

1. 변수나 데이터 구조안에 담을 수 있다

2. 파라미터로 전달할 수 있따

3. 반환값으로 사용할 수 있다.

 

Lambdas

함수형 프로그래밍의 필수요소

식별자 없이 실행 가능한 함수 표현식 가독성을 위해 코드를 줄이는것

요즘 언어의 유행, 자바에서는 필수 요소

함수형 프로그래밍에서는 자주사용

일반적인 형식

 

{변수 정의 -> 함수구현}

함수형 변수선언

 

var 이름 = { 변수 정의 -> 함수구현}

함수형 변수 형 선언 C/C++ 함수 포인터와 유사

 

이름 : (변수정의) -> 리턴형

728x90
반응형