Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Haskell 将IO操作结果存储在LET子句中_Haskell - Fatal编程技术网

Haskell 将IO操作结果存储在LET子句中

Haskell 将IO操作结果存储在LET子句中,haskell,Haskell,您好,有人能解释一下,如果您知道从那时起要使用它(您需要像标题一样的结果),您如何在haskell中将操作的结果存储在let block 在我的例子中,我调用了两次listDirectory,我想将第一次调用的值保存在变量initialList中,以便稍后将其长度与以后调用的listDirectory进行比较 如何将listDirectory的第一个调用存储在变量initialList中 module Main where import System.IO import System.Dir

您好,有人能解释一下,如果您知道从那时起要使用它(您需要像标题一样的结果),您如何在haskell中将操作的结果存储在
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异常处理的资源?