함수형 프로그래밍은 저에게는 이상한 짐승입니다. 나는 F #과 Haskell을 배우고 몇 가지 간단한 프로그램을 작성하고 사용하는 것을 좋아했지만 일부 사람들이 말하는 "계시의 섬광"은 없었습니다. 그러나 천천히, 나는 점점 더 많은 불변의 코드를 작성하여 작업을 더 작은 기능으로 나누고 델리게이트를 훨씬 더 많이 사용하려고한다는 것을 알았습니다. 이 기술의 가치가 자명하기 때문에 마음에 든다면 작업에 들어갑니다.
이제 실습을위한보다 실용적인 방법 : 두 가지 개념이 실제로 함수형 프로그래밍을 스타일로 클릭한다는 것을 알았습니다.
첫째, FP 스타일은 OOP에서와 같이 구성이 아니라 데이터 구조를 기반으로합니다. C #에서 List와 같은 것을 유형 안전 목록을 생성하는 영리한 트릭으로 보았습니다. 유형 안전 목록, 유형 (문자열)을 다른 유형 (목록)으로 구성했습니다. FP를 배운 후에는 이제 Monads와 같은 제네릭을 살펴 봅니다. List는 코드가 취할 수있는 구조화 된 형식이며 문자열을 장식합니다.
둘째, 아마도 C # / ASP 프로그래머에게 더 유용한 것은 FP가 재귀와 반복에 작동하고 OOP는 가변성과 반복에 작동한다는 생각입니다. ASP 페이지 수명주기를 이제 일종의 FP로 생각하는 경향이 있습니다. 각 요청은 전체 수명주기를 통해 처음부터 처리되므로 전체 페이지는 사실상 천천히 반복되는 하나의 큰 프로그램입니다. 이러한 개념을 좁힐 수 있다면 데이터를 가져 와서 처리하고 이전 데이터를 수정하는 대신 새 데이터를 반환하는 함수 루프를 중심으로 명령형 프로그램을 구성하는 방법에 대해 더 잘 알 수 있습니다.
적어도이 접근법으로 극복해야 할 가장 까다로운 장애물은 가변 객체를 사용할 때 많은 리소스를 낭비한다는 느낌이 많은 메모리를 절약한다는 것입니다. GC에서 우리는 신뢰하며, 실제로 프로그램이 실행되는 것을 볼 수있을 때까지 성능 문제를 해결하는 방법을 배워야했습니다.