Skip to content

Instantly share code, notes, and snippets.

@alpgul
Created March 14, 2025 18:32
Show Gist options
  • Save alpgul/a062fceaf54fbf8101c900a96b0224cf to your computer and use it in GitHub Desktop.
Save alpgul/a062fceaf54fbf8101c900a96b0224cf to your computer and use it in GitHub Desktop.
Sync Iterator Helpers proposal'ı, senkron iteratörler için yeni yardımcı metodlar ekleyerek, iterasyon işlemlerini daha kolay ve okunabilir hale getirmeyi amaçlar. Bu metodlar, diziler ve diğer iterable nesneler üzerinde daha fonksiyonel bir programlama stili sağlar.

Sync Iterator Helpers Proposal'ı: Senkron Iteratörler için Yardımcı Metodlar


Makale Detaylı Anlatımı ve Örnek Kullanımı

Sync Iterator Helpers Nedir?

Sync Iterator Helpers, senkron iteratörlere yeni metodlar ekleyerek, iterasyon işlemlerini daha kolay ve okunabilir hale getirir. Bu metodlar, map, filter, reduce, take, drop gibi işlemleri iteratörler üzerinde uygulama imkanı sunar. Bu sayede, iterasyon işlemleri daha fonksiyonel bir şekilde gerçekleştirilebilir.

Örnek Kullanım

map Metodu

map metodu, iteratördeki her bir öğeyi belirli bir fonksiyona göre dönüştürür.

const numbers = [1, 2, 3, 4, 5];
const iterator = numbers.values();

const doubled = iterator.map(x => x * 2);

for (const value of doubled) {
  console.log(value); // 2, 4, 6, 8, 10
}

filter Metodu

filter metodu, iteratördeki öğeleri belirli bir koşula göre filtreler.

const numbers = [1, 2, 3, 4, 5];
const iterator = numbers.values();

const evens = iterator.filter(x => x % 2 === 0);

for (const value of evens) {
  console.log(value); // 2, 4
}

reduce Metodu

reduce metodu, iteratördeki öğeleri tek bir değere indirger.

const numbers = [1, 2, 3, 4, 5];
const iterator = numbers.values();

const sum = iterator.reduce((acc, x) => acc + x, 0);

console.log(sum); // 15

take Metodu

take metodu, iteratörden belirli sayıda öğe alır.

const numbers = [1, 2, 3, 4, 5];
const iterator = numbers.values();

const firstThree = iterator.take(3);

for (const value of firstThree) {
  console.log(value); // 1, 2, 3
}

drop Metodu

drop metodu, iteratördeki belirli sayıda öğeyi atlar.

const numbers = [1, 2, 3, 4, 5];
const iterator = numbers.values();

const afterTwo = iterator.drop(2);

for (const value of afterTwo) {
  console.log(value); // 3, 4, 5
}

flatMap Metodu

flatMap metodu, iteratördeki her bir öğeyi bir diziye dönüştürür ve ardından bu dizileri tek bir düzleştirilmiş iteratöre dönüştürür.

const numbers = [1, 2, 3];
const iterator = numbers.values();

const flattened = iterator.flatMap(x => [x, x * 10]);

for (const value of flattened) {
  console.log(value); // 1, 10, 2, 20, 3, 30
}

toArray Metodu

toArray metodu, iteratördeki tüm öğeleri bir diziye dönüştürür.

const numbers = [1, 2, 3, 4, 5];
const iterator = numbers.values();

const array = iterator.toArray();

console.log(array); // [1, 2, 3, 4, 5]

forEach Metodu

forEach metodu, iteratördeki her bir öğe için bir fonksiyon çalıştırır.

const numbers = [1, 2, 3, 4, 5];
const iterator = numbers.values();

iterator.forEach(x => console.log(x)); // 1, 2, 3, 4, 5

Avantajlar

  1. Fonksiyonel Programlama: Iterasyon işlemlerini daha fonksiyonel bir şekilde gerçekleştirme imkanı.
  2. Okunabilirlik: Kodun daha okunabilir ve anlaşılır olması.
  3. Esneklik: Iteratörler üzerinde daha esnek işlemler yapma imkanı.

Referanslar ve Linkler

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment