작은 파일 전체에 Parsec
파서를 실행하려고하는데 열려있는 파일이 너무 많다는 오류가 발생합니다. 나는 엄격한 입출력을 사용해야 함을 알고 있지만 어떻게해야하는지 잘 모릅니다."getCurrentDirectory : 리소스 소모 (열려있는 파일이 너무 많음)"오류
files = getDirectoryContents historyFolder
hands :: IO [Either ParseError [Hand]]
hands = join $ sequence <$> parseFromFile (many hand) <<$>> files
참고 : 내 <<$>>
기능이있다 :이 문제가있는 코드 나는 당신의 parseFromFile
기능에 그것을 포함 (지금처럼 아마 좋은 아이디어를 보이는 것을 모르는
(<<$>>) :: (Functor f1, Functor f2) => (a -> b) -> f1 (f2 a) -> f1 (f2 b)
a <<$>> b = (a <$>) <$> b
문제는'parseFromFile'이 너무 게으른 것입니다, 즉 당신이 그것을 포함 할 것이라고, 나는 변경 제안하는 위치이다. 게다가,'pipes' 또는'conduit' 패키지를 사용하는 것은 좋은 생각 일 수 있습니다. – Markus1189