유형 동의어 카드은 튜플로 구성되어 있습니다. 또한 유형 동의어 데크은 [카드] (카드 목록)로 정의됩니다.하스켈 IO 목록 요소 받기
파일 읽기 때문에 IO 모나드가 붙어 있습니다. 구체적으로 IO 덱 유형의 개체가 있습니다. 카드 목록의 개별 요소를 어떻게 검색합니까? 입출력 모나드 때문에 유형을 더 이상 목록으로 보이지 않으므로 사용할 수 없습니다 !! 운영자.
{-# LANGUAGE ScopedTypeVariables #-}
testFun :: IO Deck
testFun = do
(x :: Deck) <- someDeck
-- Operate here on the x value
return []
<-
가 IO Deck
에서 Deck
을 추출합니다 :
type Card = (Int, Int)
type Deck = [Card]
someDeck :: IO Deck
someDeck = undefined -- Some sample IO Deck which you have (from reading file etc.)
는 그런 다음이 Deck
에 액세스 할 수 모나드 할 표기법을 사용할 수 있습니다 이러한 가정
'fmap (!! x) ioDeck' 또는'ioDeck >> = (\ deck -> 데크와 함께 할 일)' –
모나드를 조작하는 방법은 http://learnyouahaskell.com에서 찾을 수 있습니다./a-fistful-of-monads – AJFarmar