내 시험 기능을 배우면서 기능적 프로그래밍, 아직 실제로 시도 중입니다. 모나드. 자신을 정의하는 것보다 더 좋은 방법은 무엇입니까? 나는 이것을 다음과 같이 정의했다 : newtype ST a = ST (State -> ([a], State))
type State = StdGen
기본적으로 하나의리스트 모나드와 랜덤 모나드. 이 모나드는 임의의 함수
나는 M과 F이 모나드 인 M[F[A]]과 관련된 내포물에 대한 간단한 모나드 트랜스포머를 사용해 왔습니다. S이 다른 모나드 인 경우 M[F[A]]과 M[S[A]]을 for comp로 함께 사용할 수 있습니까? 예를 들어 : val a: Future[List[Int]] = ...
val b: Future[Option[Int]] = ...
a가하는 L
: AccValidation 데이터 형식 Either 동형이지만, 에러 측에 축적 Applicative 인스턴스를 갖는다. 즉, 두 개 이상의 오류가 발생하면 Semigroup 연산을 사용하여 오류가 추가됩니다. 이 Applicative 인스턴스의 결과로 해당 Bind 또는 Monad 인스턴스가 없습니다. AccValidation은 "모나드가 아닌 응용 펑
는 그래서 나는 스칼라에서 M 유형으로 재생하고 다음과 같은 관련 Try 및 Either 함께했다 : def brokers(throw1:() => List[Int], throw2: List[Int] => List[String]) = {
println("brokers ===> " +
(Try(throw1())
.toEither
저는 haskell 및 학습 모나드를 배우고 있습니다. 다음에 import Control.Monad.State
fib n = flip evalState (0,1) $ do
forM [0..(n-1)] $ \_ -> do
(a,b) <- get
put (b,a+b)
(a,b) <- get
return a
내
특정 위치에서 만 Nothing 항목이, Maybe n의 무한한 목록의 목록 takeWhile Nothing 첫째 : 012 : howMany :: (Int -> Bool) -> [Maybe Int] -> Int
이 내가 명시 적으로 재귀와 함께 온 것입니다 고급 하스켈 추상화를 사용하여이를 표현하는 더 좋은 방법이 있는지 궁금합니다.
경고를 끄는 방법이 있습니까? 왜 그것이 일반적으로 도움이되고 왜 WithFilter이 존재 하는지를 완전히 이해하지만,이 특정 모나드는 모나드 유형 값 모음이 아닌 개별 함수를 작성하는 데 사용되며 WithFilter은 의미있는 개선을 제공하지 않지만 추가 방법과 클래스의 간단한 인터페이스를 혼란스럽게하는 클래스.
나는 작가와 국가 (렌즈를 통해)를 결합하려고합니다. 나는 모나드 변압기가 필요하다고 확신하지만, T 버전을 사용하는 방법과이를 올바르게 구축하는 방법을 찾는 데 어려움이 있습니다. 각 필드, titleL, scheduleL 및 dueL에 대해 정의 case class Schedule(due: LocalDate)
case class Task(title:
AFAIK GHC8에 새로운 추가 중 하나는 대응 Applicative 방법 (<$>, <*>) 가능한 경우에 DO-표기 desugars ApplicativeDo 언어 확장이다 ApplicativeDo. 나는 다음과 같은 질문을 가지고있다. Applicative 방법으로 desugaring 할 수 있는지 여부를 어떻게 결정합니까? 내가 아는 바로는, (나중