Python和C++中的函数式编程
有没有什么好的书籍可以学习Python或C++中的函数式编程?我想在这两种语言中掌握函数式编程。
7 个回答
3
嗯,如果你想学习函数式编程,最好先学一门函数式语言,这样才能真正理解它的基本原则。然后你可以尽量把这些原则应用到实际中去,不过这会比较难。
在Python中,你可以用函数来修改字典,这算是比较函数式的做法。可以使用lambda表达式和高阶函数。尽量避免使用类和继承。
关于C++我就不太清楚了。也许你可以找一些函数式的数据结构,然后在这些结构上写函数。可以找一些提供像map、reduce这样的函数的库。
C++0x应该支持闭包和柯里化(或多或少),所以情况会有所改善。
总的来说:
- 尝试在库上写不可变的层(要注意,这样的性能可能不太好)
- 寻找那些以函数式方式编写的库
补充:我建议学习Scheme,这门语言很小,容易上手。可以读一些像《SICP》或者《The Little Schemer》这样的书,教你递归思维。
6
《Python中的文本处理》采用了一种函数式编程的风格,这本书让我对函数式编程产生了兴趣。它也是一本很棒的Python和编程书籍,我非常推荐大家阅读。
6
我想你提到的函数式编程,是指一种编程方式,它强调“引用透明性”,也就是没有全局状态和副作用。此外,还有一些特性,比如把函数当作第一类对象、支持多态类型、部分函数应用等等。
我知道的没有一本书专门讲C++中的函数式编程。虽然你可以在C++中编写没有全局状态和副作用的代码,也可以通过函数指针把函数作为参数传递,但你无法实现部分函数应用和匿名的lambda表达式。