: 함수형 프로그래밍은 하나의 프로그래밍 패러다임으로 정의되는 일련의 코딩 접근 방식이며, 자료처리를 수학적 함수의 계산으로 취급하고 상태와 가변 데이터를 멀리하는 프로그래밍 패러다임을 의미한다.
: 함수형 프로그래밍은 기존 절차적 프로그래밍과 객체 지향형 프로그래밍과는 다른 새로운 방식이다. 함수형 프로그래밍을 배우는 것은 스칼라나 클로저에 관심이 없고 앞으로 쓰지 않을 것 같다고 해도 다른 방식으로 사고하는 법을 배우는 것이다. 새로운 계산방법을 배우는 것 처럼 사고의 전환을 필요로 하며 다양한 사고방식으로 프로그래밍을 바라보면 유연한 문제해결이 가능하다.
: 고차 함수는 함수를 인자로 전달받거나, 함수를 결과로 반환하는 함수를 말한
:for문을 대체하는 고차 함수, 반복문을 추상화하여 구현된 메서드이고 내부에서 주어진 배열을 순회하면서 연산을 수행
( 처음에 forEach 문이 고차함수 인지 모르고 재구만을 통해서 함수형 프로그래밍을 구현하려니 고생을 많이 했다..)
: forEach 같이 순회하면서, 콜백함수에서의 실행결과를 리턴한 값으로 이루어진 배열을 만들어 반환
: 주어진 배열을 순회하면서 콜백 함수 실행의 반환값이 true에 해당하는 첫번째 요소를 반환
: 열 메소드 indexOf() 의 콜백함수 버젼. 고차함수 find()의 리턴값이 인덱스인 버젼.
: 주어진 배열을 순회하면서 콜백 함수의 반환값이 true에 해당하는 요소로만 구성된 새로운 배열을 생성하여 반환. (즉, find()의 찾아서 값을 반환하는 기능과 map()의 배열 생성 기능의 융합 버젼.)
: 콜백 함수의 실행된 반환값(initialValue)을 전달 받아 연산의 결과값이 반환. 사실상 forEach, map, filter기능을 reduce로 모두 구현해서 쓸순 있어 고차함수의 부모라고 불림
: 배열 정렬.(단, 복사본이 만들어지는게 아니라 원 배열이 정렬됨.)
: 배열 메소드인 include()의 콜백함수 버전. include는 값이 있냐에 따른 bool이면, some은 함수의 로직에 따른 bool.
배열의 요소들을 주어진 함수(조건)을 통과하는데 한개라도 통과되면 true, 아닐때에는 false를 출력.(단, 빈 배열로 함수(조건)을 통과하면 무조건 false를 출력.)
: some() 의 반대 버전 배열안의 모든 요소가 주어진 함수(조건)을 모두 통과하면 true, 한 요소라도 통과하지 못하면 false를 출력. (빈 배열을 함수에 적용시키면 무조건 true를 반환.)
: 모나드는 하스켈에서 입출력을 수행하기 위해 도입되었습니다. (함수 합성식)
모나드는 함수 내부에서 발생할 수 있는 Side Effect 를 결과 집합과 함께 포함하는 타입입니다. 함수 실행 결과를 항상 모나드로 반환하여 순수함수 성질을 잃지 않게 하는 것입니다. 더 정확하게 얘기하자면 원시타입(boolean, int, string, float, double)과 커스텀 타입(class, struct)을 구체타입이라고 할 때 우리는 구체타입을 사용하여 함수의 인자와 결과값을 표현했습니다. 이 구체타입을 한 번 더 추상화한 것이 모나드