이 문제를 해결하기 위해 이전에 관련 질문을 받았습니까? Implementation of State Monad 내 코드를 더 구체화하기 위해 하나의 증분 함수 만 사용하여 구현하려고했습니다.상태 모나드 예제 문제
module StateExample where
import Control.Monad.State
data GlobState = GlobState { c1 :: Int, c2:: Int, c3:: Int} deriving (Show)
newGlobState:: GlobState
newGlobState = GlobState { c1=0,c2=0,c3=0 }
incr :: String-> State GlobState()
incr x = do
modify(\g -> g {x =x g + 1})
main:: IO()
main = do
let a1= flip execState newGlobState $ do
incr c1
incr c2
incr c1
print a
하지만, 여기에 내가 오류 난이 오류를 제거 할 수있는 방법
`x' is not a (visible) constructor field name
는 무엇입니까?
모듈 Data.Label.PureM이 라이브러리가없는 :이 먼저 데이터베이스를 업데이트해야합니다, 당신은
cabal
실행이 처음이다. 어떻게 설치합니까? –'fclabels'을 설치하는 방법에 대한 몇 가지 지침으로 제 답변을 업데이트했습니다. 그러면'Data.Label.PureM'에 Cabal이 제공됩니다. – danr
렌즈 (또는 "라벨"또는 고객이 원하는 모든 것을 말하십시오) –