高阶函数

今天学python的时候看到高阶函数我十分激动,因为上个学期学的Haskell也有高阶函数。虽然上个学期并不勤奋地学习Haskell,但是高阶函数仍然在我的脑海里留下深刻的印象,因为高阶函数实在是太太太牛逼了。 所以今天忍不住来复习一波高阶函数。 Haskell中的高阶函数 在Haskell中,有很多很好用的高阶函数,如下面几个: map, filter, foldl, foldr map map :: (a -> b) -> [a] -> [b] map接受一个函数f和一个数列A并返回一个数列。其作用是将函数作用到A中的每一个元素上面 filter filter :: (a -> Bool) -> [a] -> [a] filter是一个过滤器,它接受一个检验函数f和一个数列A并返回一个数列。其作用是用f来过滤A中的元素 foldr, foldl foldr :: (a -> b -> b) -> b -> [a] -> b foldl和foldr的作用是将双参数的函数将列表处理 foldr f z [x1, x2, …, xn] == x1 […]

[Python] 改变工作目录函数

在学习python时写到一个十分简单的备份程序,其中涉及到工作目录的问题。 在使用Linux的zip命令时,例程给出的有效控制台命令是 zip -qr ‘/Users/smith/Desktop/test.zip’ /Users/smith/Desktop/python 但是得到的压缩文件包含python文件所有父目录(直到根目录)。即得到的压缩文件为/Users/smith/Desktop/python及python文件夹内的所有文件,也就是说压缩时连路径也压缩进去了。 然而我想在压缩时把路径省略,其中找到的一个解决法案是让脚本中的工作目录移到python的父目录在执行使用相对路径的zip命令。即在/Users/smith/Desktop目录下,执行 zip -qr ‘/Users/smith/Desktop/test.zip’ python 这就涉及到脚本下工作目录转移的命令,我尝试用os库中的os.system(‘cd XXX’)命令,但是发现执行后,工作目录并没有改变。[这篇文章](http://blog.csdn.net/qq_25467523/article/details/77859429)里面谈到里关于进程调用的过程,也谈到了两种解决方案: (1)使用os.chdir(‘new_path’) (2)使用复合命令如os.system(‘cd new_path && other_command’)