Realworld
TODO 이상의 예제를 아주 다양한 언어/프레임웤으로 구현
함수형 뿐만 아니라 모든 언어/프레임웤 에러 시작하기전에 보면 좋다.
작은 단점이라면 생각하는 방법이나 패턴, 아키텍쳐 보다는, 일종의 템플릿 느낌이 강하다 (라우팅.. DB엑세스.. 등등)
Clojure Design Pattern
클로저 디자인 패턴 (clojure.or.kr)
Clojure 식 해결방법은 물론, 그냥 OOP 적인 디자인 패턴도 학습하기에 아주좋다
예제가 재밌고 쉽게 읽을 수 있다.
-> 한국사이트가 망해부라서 원문으로 대체
Clojure Design Patterns (mishadoff.com)
Clojure Tetris
https://shaunlebron.github.io/t3tr0s-slides/#0
개인적으로 Clojure 최고의 예제
웹은 아니지만, 테트리스라는 누구나 아는 게임
Clojure 식 way
인터렉티브한 설명
clojure.async 까지..
Thirteen ways of looking at a turtle (F#)
Thirteen ways of looking at a turtle | F# for fun and profit (fsharpforfunandprofit.com)
단순히 거북이를 움직이는 코드를 다양한 디자인/아키텍쳐로 설명해준다
가장 단순한 방식부터 Free Monad 까지
"해결 방법" 등을 생각하는걸 좋아하는 사람이라면 읽어 볼 만 하다.
Fsharp Fun and Profit 이라는 사이트는 저 예제뿐만 아니라 모든 포스팅이 수준이 상당하다
(실용적이며, 무엇보다 어렵지 않게 설명함)
Spacewar (clojure)
unclebob/spacewar: Space War starting in Episode 55 of cleancoders.com (github.com)
무려 로버트 C 마틴 씨의 레포
Paren Party (Clojure)
aengelberg/paren.party: http://paren.party (github.com)
그냥 재밋는 프로젝트의 간단한 예제
Scala 적용 예
게임 서버 개발에 스칼라 사용하기 (devsisters.com)
데브시스터즈 블로그
비동기 예제 (Clojure)
[Clojure] Clojure Reactive 와 Clojure CSP(clojure.async) (tistory.com)
Clojure CPS/Reactive 에 관한 예제들
Monad 예제
본격적으로 Monad 를 시작할때..
https://taeguk2.blogspot.com/2019/08/purely-functional-business-logic-in.html
https://velog.io/@dvmflstm/ZIO-scala-functional-asynchronous-concurrent-library
책 추천
스칼라로 배우는 함수형 프로그래밍 (일명 빨간책)
이 책에서 "스칼라"는 별 중요하지 않다.. 아주 깊은 수학적 함수형 99% 으로 이루어진책
프로그래밍 스칼라
스칼라는 잘 모르는데, 왠만한 리얼월드 예제가 죄다 스칼라라 코드보고 이해할 정도는 되야한다..
그리고 예제도 적당함
클로저 프로그래밍의 즐거움 (Joy of Clojure)
Clojure 공부하면 하나쯤 있는책
코틀린을 다루는 기술
근데 솔직히 Kotlin 에 과하게 FP 로 설명해서 쵸큼.. 그렇긴 한데, 마지막 챕터쯤 에 절차 -> 함수형 -> 더 함수형으로 XML 출력기를 구현해주는 예제의 난이도가 적절하다..
728x90
'프로그래밍 기술 노트 > Functional Study' 카테고리의 다른 글
[Optics/Lens] 내 멋대로 Optics 이해하기 Feat) arrow-kt (2) | 2022.04.20 |
---|---|
[liftIO] 함수형 컨퍼런스 liftIO 후기 (0) | 2021.11.03 |
[Functional Programming] 함수형 훑어보기 (0) | 2021.07.03 |
[Monad/Free Monad] 내멋대로 Free 모나드 이해하기 (0) | 2020.11.11 |
[Monad] 내멋대로 Monad 이해하기 - Bind (FlatMap), Monad (0) | 2020.06.07 |