9

在测试时,我想从磁盘读取和写入文件(JSON 输入,JSON 输出)。我如何在 PureScript 中做到这一点?在 Haskell 我有类似的东西

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

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

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

4

2 回答 2

10

或使用纯脚本 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"
于 2018-06-12T13:34:40.217 回答
4

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

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-node-fs-aff
  • 纯脚本控制
于 2016-06-04T23:42:40.310 回答