我是Haskell的新手.
我的目标是将文件从一个目录复制到其他目录.
到目前为止我所拥有的:
我有两个列表包含完整路径文件名
list1 = ["file1", "file2" ...]
list2 = ["new name1", "new name2"...]
Run Code Online (Sandbox Code Playgroud)
我想用
copyFile::FilePath->FilePath->IO()
Run Code Online (Sandbox Code Playgroud)
将文件从list1复制到list2
注意:list2包含所有新的完整路径文件名
我知道
zipWith(a->b->c)->[a]->[b]->[c]
Run Code Online (Sandbox Code Playgroud)
我试着
zipWith(copyFile) list1 list2
Run Code Online (Sandbox Code Playgroud)
但它不起作用.
任何建议将不胜感激
我试着找出在调试过程中是否可以跳过(不运行)一行代码,我已经浏览了Visual Studio(2010)上的"Debug"菜单,但我找不到类似的东西.
我不是在寻找"Step Over",
我是新的Haskell并尝试练习我的Haskell技能.
我想实现一个函数来合并两个列表,以便从每个列表中替换项目.
["a", "b", "c"]
["1", "2", "3"]
Run Code Online (Sandbox Code Playgroud)
合并后.
["a", "1", "b", "2", "c", "3"]
Run Code Online (Sandbox Code Playgroud)
这是我的Haskell代码
mergeList::[String]->[String]->[String]
mergeList [] [] = []
mergeList _ [] = []
mergeList [] _ = []
mergeList (x:xs) (y:ys) = x:y:mergeList xs ys
Run Code Online (Sandbox Code Playgroud)
只要两个列表的长度相同,代码就可以工作.
但是我想对两个列表的长度进行一些错误检查.
如果两个列表的长度不同,那么我想报告错误.
mergeList::[String]->[String]->[String]
mergeList l r | length l /= length r = error "report an error"
| otherwise =
Run Code Online (Sandbox Code Playgroud)
我怎样才能完成其他部分?