我是Haskell的初学者(与此有关的还有StackOverflow)。我想要一些有关如何优化csv阅读器的建议,特别是因为在教程中告诉我,显式return
不是惯用语言。我的实现:
convertCSVFile :: String -> IO (V.Vector StockSummary)
convertCSVFile fileName = do
csvData <- BL.readFile fileName
case decode HasHeader csvData :: Either String (V.Vector StockSummary) of
Left err -> error err
Right v -> return v
如果您对单子操作(返回和绑定)过敏,则可以使用Data.Either.either
以下代码免费写:
convertCSVFile :: String -> IO (V.Vector StockSummary)
convertCSVFile =
fmap (either error id . decode hasHeader)
. BL.readFile
但是我当然不会说这比您最初写的要容易阅读。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句