Tabloları Dönüştürme: map, filter, reduce
Tablo dönüşümü için işlevsel üst düzey yardımcılar oluşturun.
Tabloları Dönüştürme: map, filter, reduce, CoddyKit'te ücretsiz bir Lua Academy dersidir. Bu, 4 dersinin 4. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Lua Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Lua Academy kursu toplamda 4 dersten oluşur.
Lua'da İşlevsel Kalıplar
Lua'da yerleşik map/filter/reduce bulunmaz; ancak bunlar kapanımlar ve genel for döngüleri kullanılarak kolayca uygulanabilir.
map: Her Öğeyi Dönüştürme
map, her öğeye bir işlev uygular ve sonuçlardan oluşan yeni bir tablo döndürür.
local function map(t, fn)
local result = {}
for i, v in ipairs(t) do result[i] = fn(v) end
return result
end
local doubled = map({1,2,3}, function(x) return x * 2 end)
print(table.concat(doubled, ", ")) -- 2, 4, 6filter: Eşleşen Öğeleri Tutma
filter, yüklemin doğru döndürdüğü öğeleri tutar.
local function filter(t, pred)
local result = {}
for _, v in ipairs(t) do
if pred(v) then result[#result+1] = v end
end
return result
end
local evens = filter({1,2,3,4,5}, function(x) return x % 2 == 0 end)
print(table.concat(evens, ", ")) -- 2, 4reduce: Tek Bir Değere Katlama
reduce, bir biriktirici kullanarak öğeleri soldan sağa birleştirir.
local function reduce(t, fn, init)
local acc = init
for _, v in ipairs(t) do acc = fn(acc, v) end
return acc
end
local sum = reduce({1,2,3,4,5}, function(a,b) return a+b end, 0)
print(sum) -- 15İşlemleri Zincirleme
Anlatımı güçlü veri işlem hatları oluşturmak için map, filter ve reduce işlemlerini zincirleyin.
local nums = {1,2,3,4,5,6,7,8,9,10}
local result = reduce(
map(
filter(nums, function(x) return x % 2 == 0 end),
function(x) return x * x end
),
function(a,b) return a + b end, 0
)
print(result) -- 220forEach: Yan Etkiler
forEach, yeni bir tablo oluşturmadan yineleme yapar; yazdırma gibi yan etkiler için kullanışlıdır.
local function forEach(t, fn)
for i, v in ipairs(t) do fn(v, i) end
end
forEach({"a","b","c"}, function(v, i) print(i, v) end)flatMap: Eşleme Sonrası Düzleştirme
flatMap, her öğeyi bir listeye eşler ve ardından tüm listeleri birleştirir.
local function flatMap(t, fn)
local result = {}
for _, v in ipairs(t) do
for _, item in ipairs(fn(v)) do
result[#result+1] = item
end
end
return result
end
local expanded = flatMap({1,2,3}, function(x) return {x, x*10} end)zip: İki Tabloyu Birleştirme
zip, iki tablodaki öğeleri çiftlerden oluşan bir tabloda eşleştirir.
local function zip(a, b)
local result = {}
for i = 1, math.min(#a, #b) do
result[i] = {a[i], b[i]}
end
return result
end
local zipped = zip({1,2,3}, {"a","b","c"})Sözlük Tablolarıyla Çalışma
Anahtar-değer tablolarında ipairs yerine pairs ile yineleyin ve anahtar-değer çiftlerini toplayın.
local function mapValues(t, fn)
local result = {}
for k, v in pairs(t) do result[k] = fn(v) end
return result
end
local doubled = mapValues({x=1,y=2}, function(v) return v*2 end)Tembel Değerlendirme Kavramı
Büyük veri kümelerinde, büyük ara tablolar oluşturmaktan kaçınmak için tembel yineleyicileri (her seferinde bir öğe üreten kapanımları) değerlendirin.
Performans Notu
Her map/filter işlemi yeni bir tablo ayırır. Sıkı döngülerde yerinde değiştirme daha verimli olabilir; ancak değişmezlikten ve açıklıktan ödün verir.
reduce Sorusu
reduce({1,2,3,4}, function(a,b) return a+b end, 0) ne döndürür?
Özet: map/filter/reduce
map dönüştürür, filter seçer, reduce katlar. Bu üç üst düzey işlev, Lua'da işlevsel veri işlemenin temelini oluşturur.
Yapay zeka eğitmeniyle Lua öğren — ücretsiz
Tarayıcında gerçek kod yaz ve çalıştır, 7/24 yapay zeka eğitmeninden anında yardım al; web'de ya da uygulamada kaldığın yerden devam et.
- Kurslar
- 40
- Dersler
- 159
Sıkça Sorulan Sorular
“Tabloları Dönüştürme: map, filter, reduce” dersi ücretsiz mi?
Evet — “Tabloları Dönüştürme: map, filter, reduce” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Lua Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Lua Academy kursu toplamda 4 dersten oluşur.
“Tabloları Dönüştürme: map, filter, reduce” dersinde ne öğreneceğim?
Tablo dönüşümü için işlevsel üst düzey yardımcılar oluşturun. Lua Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
Lua Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Lua Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 4. dersidir.
“Tabloları Dönüştürme: map, filter, reduce” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu Lua Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Lua Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Karşılaştırıcılarla table.sort
- table.concat ve table.move
- Derin Kopya ve Sığ Kopya
- Tabloları Dönüştürme: map, filter, reduce