Lua Academy · Ders

Tabloları Dönüştürme: map, filter, reduce

Tablo dönüşümü için işlevsel üst düzey yardımcılar oluşturun.

4. ders / 413 adım

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, 6

filter: 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, 4

reduce: 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)  -- 220

forEach: 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.

Başlamak ücretsiz

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

  1. Karşılaştırıcılarla table.sort
  2. table.concat ve table.move
  3. Derin Kopya ve Sığ Kopya
  4. Tabloları Dönüştürme: map, filter, reduce
← Lua Academy Sayfasına Dön