15 Ağustos 2008 Cuma

Kurtar Beni Lambda

Bazen öyle şeylere ihtiyaç duyuyorum ki, "Bunun için de şimdi bilmem kaç satır döngü oluşturmaya değer mi?" diye düşünmeden olmuyor. Mesela XfceP'i yaparken de öyle bir olayla karşılaşmıştım.

Sizi bilmem ama, böylesi basit bir şey için döngü oluşturmayı da fazlasıyla lüks buldum, o nedenle de lambda bazı yerlerde gerçekten işe yarayan bir araç. Özellikle, for döngüsü içinde birkaç tane daha döngü kurunca, bir tiksinti kaplıyor içimi, şu linkte[1] anlatıldığı gibi:

nums = range(2, 50)
for x in nums:
divided = False
for i in range(2, x - 1):
if (x % i) == 0:
divided = True
if divided == False:
print x,

Halbuki lambda bu karışıklıktan tek bir satırda kurtulmanıza izin veriyor:

>>> nums = range(2, 50)
>>> for i in range(2, 8):
... nums = filter(lambda x: x == i or x % i, nums)
...
>>> print nums
[2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47]

Lambda'nın, map & filter & reduce hedelerine ise daha sonra değinirim artık..

[1]: http://www.secnetix.de/olli/Python/lambda_functions.hawk

Hiç yorum yok:

Yorum Gönder