Haskell 将IO操作结果存储在LET子句中
您好,有人能解释一下,如果您知道从那时起要使用它(您需要像标题一样的结果),您如何在haskell中将操作的结果存储在Haskell 将IO操作结果存储在LET子句中,haskell,Haskell,您好,有人能解释一下,如果您知道从那时起要使用它(您需要像标题一样的结果),您如何在haskell中将操作的结果存储在let block 在我的例子中,我调用了两次listDirectory,我想将第一次调用的值保存在变量initialList中,以便稍后将其长度与以后调用的listDirectory进行比较 如何将listDirectory的第一个调用存储在变量initialList中 module Main where import System.IO import System.Dir
let block
在我的例子中,我调用了两次listDirectory
,我想将第一次调用的值保存在变量initialList
中,以便稍后将其长度与以后调用的listDirectory
进行比较
如何将listDirectory
的第一个调用存储在变量initialList
中
module Main where
import System.IO
import System.Directory
import DB(db)
import Company
main::IO()
main = do
putStrLn "Insert folder for output:"
folder<-getLine
makeDir folder>>= \b ->
putStrLn (if b then "Created" else "Existed Already")
makeDir::String->IO Bool
makeDir dirname=let root="D:\\"
enumerateDirs=listDirectory root
initialList=<<enumerateDirs in //how can i store it here?
if dirname `elem` initialList then
putStrLn "Directory found , folder count:"++length initialList
else
createDirectory root++dirname>>
length enumerateDirs >initialList
modulemain其中
导入系统.IO
导入系统目录
导入数据库(DB)
进口公司
main::IO()
main=do
putStrLn“为输出插入文件夹:”
文件夹>=\b->
putStrLn(如果b则“已创建”或“已存在”)
makeDir::String->IO Bool
makeDir dirname=let root=“D:\\”
enumerateDirs=listDirectory根目录
初始列表=
长度枚举目录>初始列表
使用绑定,而不是让
/=
执行IO操作。像这样:
makeDir dirname = do
let root = "D:\\"
initialList <- listDirectory root
if dirname `elem` initialList then
putStrLn ("Directory found, folder count: " ++ length initialList)
else createDirectory (root ++ dirname)
finalList <- listDirectory root
return (length finalList > length initialList)
makeDir dirname=do
让root=“D:\\”
初始列表能否提供show me/告诉我在哪里可以找到Haskell异常处理的资源?