참고 post
https://nearsoft.com/blog/functional-programming-concepts-applied-using-c/
http://hamidmosalla.com/2019/04/25/functional-programming-in-c-sharp-a-brief-guide/
---------------------------------------------------------------------------------------------
아래 내용은 https://www.youtube.com/watch?v=jnefwbiK11Q 를 참고해서 작성
- Mutable value를 사용하는 대신 , 새로 Imutable instance를 생성해서 변경
- 함수를 새로 만들어 호출하는 대신 Func를 사용하여 캡슐화
- 일급 함수 , 함수를 파라미터로 받아들이고 , 리턴하는 함수
- Statement 내부 Mutable variable은 병렬처리 시에 문제를 일으키 소지가 있다.
Express을 사용해서 부작용을 제거
- 일급함수는 function을 리턴하므로 Method chaining pattern이 가능
- Class 내부에 함수를 생성하지 말고 Extension Methods를 사용 , 많이 사용하자
Interface를 수정하지 않아 구현이 편할 뿐만 아니라 Chaining pattern을 가능하게 함
- Mutable이므로 부작용을 일으킬 수 있으므로 Extra Temp Data list을 제거하자.
심지어 코드도 깔끔하다.
- Data class를 새로 만들어 사용하기 보다 Tuple을 사용해서 Data structure를 구성
[Functional programming workshop#]
1. Statement 를 Expression로 변경
2. Extension method(ToAlike)을 사용해서 expression을 사용
3. Get Score 함수를 Statement에서 expression으로 정의해서 Chaining을 가능하게