나는 Getter 및 Setter로 사용할 수있는 렌즈를 정의하려는 Haskell 코드의 레코드 유형을 사용합니다. 코드는 다음과 같습니다. data Players = Players { _white :: Player
, _black :: Player
} deriving (Show, Eq)
makeLenses ''Play
나는 과 zippers으로 고민 중입니다. Control.Monad.MonadPlus m => m (Zipper Top Int [Int] :>> A Int) : 코드 아래의 고려는 내가 좋아하는 지퍼의 유형을 만드는 방법, data A t = A t를 갖는 ghci > import Control.Lens
> import Control.Zipper
>
zippers 및 lens을 사용하여 문제가 발생했습니다. 예를 들어 다음과 같은 고려 : 당신이 볼 수 있듯이, 내가 Top :>> A :>> A 및 Top :>> A :>> B에 Top :>> A 중 하나를 이동할 수 {-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE TypeOperators #-}
import Con
다음 표현의 의도는 어떻게 다릅니 까? 나는 그들이 실제로 유형 검사를하고 아래 예에서 다른 결과를 산출한다는 것에 놀랐다. 그들은 전형적인 pom.xml 파일과 함께 작동하는 방법 (./) ::
Plated a =>
Traversal s t a a -> Traversal a a u v -> Traversal s t u v
--
프리즘에 관한 '렌즈'문서를 탐색 중이었고 Control.Lens에서 라인을 발견했습니다. 프리즘을 스마트로 사용할 때 삽입 연산자 검토 연산자 # '가 일반적으로 사용되는 것으로 나타났습니다. 건설자.'. _Left, 'Either'데이터 형식에 대한 생성자 중 하나가 스마트 생성자와 같이 보이지 않는데 (인수 값에 대한 추가 제한 사항 추가) . 그래서
lens 인수가있는 함수를 구현하려고하는데 (->) r이라는 두 가지 적용 효과가있는 Maybe 모노 도형이됩니다. 아마도 몇 가지 기본 사항이 누락되어 있으므로이 문제를 해결하는 데 도움이 될 것입니다. 다음 z pom root [(textFrom "groupId"), (textFrom "artifactId"), (textFrom "version")]
이것은 brew가 설치된 ghc 및 cabal-install이 설치된 Mac OS X에 있습니다. 최신 버전. Resolving dependencies...
[1 of 1] Compiling Main (/var/folders/23/1yjxv_x14f1g817x9fz3wy500000gp/T/distributive-0.4.4-83867/distribut
haskell에서 다음을 수행 할 수 있습니다. import Control.Lens
import qualified Data.Map as M
m :: Map Int (Map Int String)
m = M.empty & at 1 . non M.empty . at 2 .~ Just "one-two"
스칼라에서 비슷한 작업을 수행 할 수 있습니까? 어쩌
렌즈가있는 모듈에서 특정 getter xor setters 만 내보내는 방법이 있습니까? 어떻게 수있을 것 module Something
(Counter
-- export only `count` getter
, make
, increment
) where
data Counter = Counter { _coun
저는 Lens 라이브러리를 좋아하고 어떻게 작동 하는지를 좋아하지만 때로는 많은 문제를 야기합니다. 나는 그것을 사용하기 시작했습니다. 상상 지금 ""
을 그리고 - 우리는 데이터 유형을 가지고 우리는 그것을 리팩토링 - 몇 가지 이름을 변경하여 : 그것은 출력 {-# LANGUAGE TemplateHaskell #-}
import Control.L