«comonad» 태그된 질문

1
Zipper가 Comonad 인 이유 이해
이것은 이전 질문에 대한 답변 에 대한 후속 조치 입니다. 나는 각 항목을 매핑 할 필요가 가정 a:A의 List[A]에 대한 b:B기능 def f(a:A, leftNeighbors:List[A]): B및 생성 List[B]. 당연히 map목록에 전화 를 걸 수는 없지만 목록 지퍼를 사용할 수 있습니다 . 지퍼는 목록을 이동하는 커서입니다. 현재 요소 ( focus) 및 인접 …

2
Haskell의 Comonad typeclass는 무엇입니까?
Haskell의 Comonad typeclass는 무엇입니까? 에서 Comonad에서와 같이 comonad 패키지 Control.Comonad (A Comonad의 typeclass는 또한 제공하는 다른 패키지의 설명은 환영합니다). 나는 Comonad에 대해 막연하게 들었지만, 내가 그것에 대해 정말로 아는 extract :: w a -> a것은 Monad의 return :: a -> m a. "실제"코드에서 Comonad의 "실제"사용에 대한 보너스 포인트.

3
일반적으로 지퍼 코 모나드
모든 컨테이너 유형이 주어지면 (요소 중심) 지퍼를 형성 할 수 있으며이 구조가 Comonad임을 알 수 있습니다. 이것은 최근 다음 유형에 대한 또 다른 스택 오버플로 질문 에서 훌륭하게 자세히 탐구되었습니다 . data Bin a = Branch (Bin a) a (Bin a) | Leaf a deriving Functor 다음 지퍼로 data Dir …

1
연속 모나드를 왼쪽 및 오른쪽 인접 요소로 분해하는 방법은 무엇입니까?
State monad는 Product (Left-Functor) 및 Reader (Right-Representable)로 분해 할 수 있습니다. Continuation Monad를 분해하는 방법이 있습니까? 아래 코드는 확인을 입력하지 않는 내 시도입니다. -- To form a -> (a -> k) -> k {-# LANGUAGE MultiParamTypeClasses, TypeOperators, InstanceSigs, TypeSynonymInstances #-} type (<-:) o i = i -> o -- I …
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.