Haskell Monads에 해당하는 Scala
-
19-09-2019 - |
문제
나는 Haskell에서 약간의 경험을 가지고 있었고 현재 Scala를 배우고 있습니다. 스칼라에 모나드와 동등한 것이 있는지 궁금합니다.
해결책
당신은 아마 체크 아웃하고 싶을 것입니다 스칼라즈; Haskell의 영향을 많이 받았습니다. 실제로, 그것은 종종 주요 기여자 중 한 명에게 그들이 왜 그렇지 않은지에 대한 질문을 받았습니다. 단지 그들이 너무 좋아하는 것처럼 Haskell을 사용하십시오!
Scalaz는 모나드로 구조물을 장식하기 위해 암시를 많이 사용합니다. 예를 들어:
val fibs = (0, 1).iterate[Stream]( i => i._2 -> (i._2 + i._1) ).map(_._1)
println( fibs.take(10) )
다른 팁
Scala의 "For-Congrension"은 Haskell의 모나디아 인 "Do"와 동일하다는 점에 주목할 가치가 있다고 생각합니다.
옵션과 목록은 모두 모나드입니다. 또한 왼쪽과 오른쪽 예측도 모나드라고 생각합니다.
Scala Standard Library에는 Monad의 명시 적 개념이 없습니다 (적절한 특성/클래스 또는 TypeClass는 없습니다).
Scala는 이것을 임시 방식으로 다루고 있습니다. 예제 별 스칼라의 섹션 이해를 위해 자세한 내용은.
제휴하지 않습니다 StackOverflow