Haskell提供了類似f = f1的功能。 f2用Python模仿Haskell
我該怎樣用Python來模仿?
例如,如果我必須做兩次'地圖'操作,有沒有什麼辦法做一些像地圖這樣的事情。在Python中的地圖?
x = ['1','2','3'] x = map(int,x) x = map(lambda i:i+1, x)
Haskell提供了類似f = f1的功能。 f2用Python模仿Haskell
我該怎樣用Python來模仿?
例如,如果我必須做兩次'地圖'操作,有沒有什麼辦法做一些像地圖這樣的事情。在Python中的地圖?
x = ['1','2','3'] x = map(int,x) x = map(lambda i:i+1, x)
已經有一個compose
操作的一些提案,但都沒有被正式確定。同時,可以使用列表理解或生成器表達式將複雜變換應用於序列。
這是here的一個很好的配方。
def compose(f,g):
return lambda x: f(g(x))
def inc(x): return x+1
map(compose(inc, int), ['1', '2', '3'])
# [2, 3, 4]
>>> import functional , functools , operator >>> f1 = int >>> f2 = functools.partial(operator.add, 1) >>> f = functional.compose(f1, f2) >>> x = map(f, ['1', '2', '3'])
這是不是你要找的答案,但你的例子可以凝結成'X =地圖(拉姆達我:INT( i)+1,x)' – 2010-03-11 22:09:34