◆ Pythonic的方式使用map和filter
列表迭代在python中是非常pythonic的使用方式
def inc(x):
return x+1
>>> list(map(inc,range...(10)))
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
# pythonic way
>>> [inc(i) for i in range(10)]
[1, 2, 3, 4, 5...list 是值类型吗?
不是,因为list是可变类型。
tuple是值类型吗?
是的,因为tuple是不可变类型
iterator是值类型吗?...大多数函数式语言都具有不可变性是有原因的。只有当可以保证表达式的参数每次都具有相同的含义时,才能延迟表达式的求值。
在本例中,filter(is_even, a)的结果取决于迭代器的实现时间。...)
>>> take(5, res)
(1, 2, 3, 4, 5)
>>> take(5, res)
(1, 2, 3, 4, 5)
您总是会得到相同的结果,就像在clojure或任何其他函数式编程语言中一样