나는 같은 IO의 맥락에서 몇 가지 데이터 유형이 : 나는 하나의 데이터 객체처럼 함께 그들 모두를 데려 가고 싶다는변환 - IO에 (A> IO 나) (A -> B)
a :: IO String
b :: IO FilePath
c :: String -> IO String
을 :
data Configdata = Configdata String FilePath (String -> String)
은 그래서 IO의 문맥 자체에 대한 각 값을 얻을 필요는 없지만, 단지 IO Configdata
중.
해결 방법이없는 중요한 점은 String -> IO String
을 IO (String -> String)
으로 변환 할 수 있다는 것입니다. Hoogle은이 작업을 수행 할 수있는 기능을 제공하지 않습니다.
함수의 입력이 무한하기 때문에 어쩌면 불가능할지 모르겠습니다.
해결책이나 설명이있는 사람이 있습니까? 함수 대신 목록을 사용하는 것은 옵션이지만 가능한 경우 함수를 사용하는 것이 좋습니다.
정말 호환되지 않습니다. 'String -> IO String'에서 IO 계산은 인수에 의존 할 수 있습니다. 'IO (String -> String)'에 의존 할 수 없습니다. – Bergi
@Bergi가 완벽하게 말했습니다. 이것은 Applicative와 Monad의 주요 차이점입니다. – user2297560