以文本编码作为参数的Haskell readFile
我需要一个版本的以文本编码作为参数的Haskell readFile,haskell,Haskell,我需要一个版本的readFile以文本编码为参数。我最终得出以下结论: readFile' e name = openFile name ReadMode >>= (flip hSetEncoding $ e) >&&> hGetContents f >&&> g = \x -> f x >> g x 有更好的方法吗 似乎我定义为&&&>的东西应该是标准的东西,但我找不到它 谢谢, Adam是liftM2(
readFile
以文本编码为参数。我最终得出以下结论:
readFile' e name = openFile name ReadMode >>= (flip hSetEncoding $ e) >&&> hGetContents
f >&&> g = \x -> f x >> g x
&&&>
的东西应该是标准的东西,但我找不到它Adam是
liftM2(>>)
,导入了Control.Monad.Instances
。标准库中没有更简洁的版本了。我认为简单的“do block”方法很适合这种情况,而不是说它更简洁
readFile'e name=do{h或
liftA2(>>)
。我更喜欢(>)r
的应用程序实例。我不知道为什么。:-PAlso有用:writeFile'e f txt=with file f WriteMode(\hdl->hSetEncoding hdl e>>hPutStr hdl txt)