값 위로 fmap
을 사용하면 본질적으로 해당 값의 "저장을 해제"하고 기능을 적용한 다음 다시 상자에 넣습니다. 예를 들어하스켈의 일반적인 'unwrap'기능은 무엇입니까?
:
-- returns Just 8
fmap (+3) (Just 5)
나에게 다시 그것을 권투없이 값을 제공하는 함수가 있나요?
-- returns 8
fmap_2 (+3) (Just 5)
내가이 배열에 대해 어떻게 작동하는지 모르는, 부여,하지만 초보자를위한 Either
들과 Maybe
의, 유용 할 것입니다.
-- myfunc :: Maybe Int
-- if myfunc returned a Just, show it and then print it. Otherwise, print 'Nothing'.
putStrLn . fmap show $ myfunc
또는 모나드를 혼합의 또 다른 표준 방법이 : 나는 쉽게 모나드를 혼합하는 데 사용할 수 있을까?
아니요, 모나드를 혼합하는 표준 방법은 없습니다. 있을 수 없다. 모나드는 출퇴근하지 않습니다. 그러나 * 일부 모나드는 특별한 방법으로 혼합 될 수 있습니다. 이러한 특수한 모나드 믹싱 방법을 패키징하는 확립 된 방법을 모나드 트랜스 포머라고합니다. 거기 모나드 변압기의 여러 라이브러리, 그리고 광범위한 문학이 있습니다. 그냥 구글 "모나드 변압기". –
보세요 : [모나드 액션에서 가치를 추출하는 방법?] (http://stackoverflow.com/questions/8567743/how-to-extract-value-from-monadic-action) –