如何在纯脚本中遍历 Effect (Array String)
How to go through Effect (Array String) in purescript
我正在学习 purescript 并尝试记录目录内容。
module Main where
import Prelude
import Data.Traversable (traverse)
import Effect (Effect)
import Effect.Console (log)
import Node.FS.Sync (readdir)
fnames = readdir "."
main = do
travere (\a -> log $ show a) fnames
我想在控制台输出中打印文件夹条目。
我无法摆脱(或通过)从 Node.FS.Sync (readdir)
(我得到 Effect (Array String)
)得到的 Effect
。并且 traverse
或 log
或 show
不能与 Array String
前面的 Effect
一起使用。
我得到 No type class instance was found for Data.Traversable.Traversable Effect
。
Effect
是程序,不是值。 Effect (Array String)
是一个程序,在执行时会产生一个 Array String
。如果不执行该程序,您将无法从该程序中获取 Array String
。
执行此程序的一种方法是使其成为更大程序的一部分,例如您的 main
程序。像这样:
main = do
ns <- fnames
traverse (\a -> log $ show a) ns
当然,在成为main
程序的一部分之前,确实没有必要把它放在一个全局变量fnames
中。可以直接包含readdir "."
:
main = do
ns <- readdir "."
traverse (\a -> log $ show a) ns
我正在学习 purescript 并尝试记录目录内容。
module Main where
import Prelude
import Data.Traversable (traverse)
import Effect (Effect)
import Effect.Console (log)
import Node.FS.Sync (readdir)
fnames = readdir "."
main = do
travere (\a -> log $ show a) fnames
我想在控制台输出中打印文件夹条目。
我无法摆脱(或通过)从 Node.FS.Sync (readdir)
(我得到 Effect (Array String)
)得到的 Effect
。并且 traverse
或 log
或 show
不能与 Array String
前面的 Effect
一起使用。
我得到 No type class instance was found for Data.Traversable.Traversable Effect
。
Effect
是程序,不是值。 Effect (Array String)
是一个程序,在执行时会产生一个 Array String
。如果不执行该程序,您将无法从该程序中获取 Array String
。
执行此程序的一种方法是使其成为更大程序的一部分,例如您的 main
程序。像这样:
main = do
ns <- fnames
traverse (\a -> log $ show a) ns
当然,在成为main
程序的一部分之前,确实没有必要把它放在一个全局变量fnames
中。可以直接包含readdir "."
:
main = do
ns <- readdir "."
traverse (\a -> log $ show a) ns