如何在PureScript中读取文件(readFile)

时间:2016-02-29 16:58:13

标签: purescript

在测试时,我想从磁盘读取和写入文件(JSON in,JSON out)。我如何在PureScript中执行此操作?在Haskell中我有类似

的东西
main :: IO ()
main = do
  input <- readFile "input.json"
  writeFile "output.json" $ process input

到目前为止我的所有尝试都失败了,包括尝试使用readFile中的import Node.FS.Sync

顺便说一下,如果我的JSON文件中还有其他(更好)的阅读方式,请告诉我。 (我不是JavaScript专家,但我想将一些 - 严格 - Haskell代码移植到JS,以便它可以在其他地方使用。)

2 个答案:

答案 0 :(得分:6)

或者使用purescript 0.12

module Main where

import Prelude
import Effect (Effect)
import Effect.Console (log)

import Node.Encoding (Encoding(..))
import Node.FS.Sync (readTextFile)

main :: Effect Unit
main = do
  log =<< readTextFile UTF8 "input.json"

答案 1 :(得分:3)

这是一个完整的工作示例,可以读取和打印文件。

module Main where

import Prelude (Unit)

import Control.Bind ((=<<))
import Control.Monad.Eff (Eff)
import Control.Monad.Eff.Console (CONSOLE, log)
import Control.Monad.Eff.Exception (EXCEPTION)

import Node.Encoding (Encoding(..))
import Node.FS (FS)
import Node.FS.Sync (readTextFile)

main :: forall e. Eff (console :: CONSOLE, exception :: EXCEPTION, fs :: FS | e) Unit
main = do
  log =<< readTextFile UTF8 "input.json"

依赖关系:

  • purescript控制台
  • purescript-EFF
  • purescript-数学
  • purescript节点-FS-AFF
  • purescript控制