Kurtar Beni Lambda

August 15, 2008 1 minute read

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 linkte1 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..