0Pricing
JavaScript Academy · Ders

İşlevlerde Currying

Birden çok bağımsız değişken alan işlevleri zincirlere dönüştürün.

İşlevlerde Currying, CoddyKit'te ücretsiz bir JavaScript Academy dersidir. Bu, 4 dersinin 2. 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, JavaScript Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. JavaScript Academy kursu toplamda 4 dersten oluşur.

Kürleme Nedir

Kürleme, çok sayıda bağımsız değişken alan bir işlevi, her biri tek bir bağımsız değişken alan işlevler dizisine dönüştürür.

add(1, 2, 3) çağrısı yerine add(1)(2)(3) çağrısını yaparsınız. Her çağrı, tüm bağımsız değişkenler toplanana kadar bir sonraki işlevi döndürür.

Elle Kürleme

Kürlemeyi görmenin en açık yolu, her biri bir sonrakini döndüren ve önceki bağımsız değişkenleri kapsayan iç içe işlevler yazmaktır.

function add(a) {
  return function (b) {
    return function (c) {
      return a + b + c;
    };
  };
}

console.log(add(1)(2)(3));

İç İçe Ok İşlevi Döndürmeleri

Ok işlevleri, kürlenmiş tanımları kısaltır. Her => bir sonraki oku döndürür ve sonuncusu işi gerçekleştirir.

const add = a => b => c => a + b + c;

console.log(add(1)(2)(3));
console.log(add(10)(20)(30));

Kapanımlar Bağımsız Değişkenleri Hatırlar

Kürleme kapanımlara dayanır. Döndürülen her işlev, dış kapsamındaki değişkenlere yapılan başvuruyu korur; böylece önceki bağımsız değişkenler son çağrı çalışana kadar kullanılabilir durumda kalır.

const greet = greeting => name => greeting + ', ' + name + '!';

const sayHi = greet('Hi');
console.log(sayHi('Ada'));
console.log(sayHi('Grace'));

Adım Adım Çağırma

Tüm bağımsız değişkenleri aynı anda uygulamanız gerekmez. Yolun ortasında durabilir ve kısmi sonucu yeniden kullanmak üzere bir değişkende tutabilirsiniz.

const add = a => b => c => a + b + c;

const addOne = add(1);
const addOneAndTwo = addOne(2);

console.log(addOneAndTwo(3));
console.log(addOneAndTwo(100));

Genel Bir Kürleme Yardımcısı

İç içe işlevleri elle yazmak yorucudur. Genel bir curry yardımcısı, yeterli sayıya ulaşana kadar bağımsız değişkenleri toplar ve ardından özgün işlevi çağırır.

function curry(fn) {
  return function curried(...args) {
    if (args.length >= fn.length) {
      return fn(...args);
    }
    return (...more) => curried(...args, ...more);
  };
}

const add = curry((a, b, c) => a + b + c);
console.log(add(1)(2)(3));

curry ile Esnek Çağrı

İyi bir curry yardımcısı, argümanları herhangi bir gruplamayla kabul eder. fn.length, özgün işlevin kaç parametre bildirdiğini gösterir.

function curry(fn) {
  return function curried(...args) {
    if (args.length >= fn.length) {
      return fn(...args);
    }
    return (...more) => curried(...args, ...more);
  };
}

const add = curry((a, b, c) => a + b + c);
console.log(add(1, 2, 3));
console.log(add(1, 2)(3));
console.log(add(1)(2, 3));

Kürleme ile Özelleştirme

Kürleme, özelleştirmeyi doğal hâle getirir: ilk argümanı uygulayın ve döndürülen işlevi birçok çağrıda yeniden kullanın.

const multiply = a => b => a * b;

const double = multiply(2);
const triple = multiply(3);

console.log(double(5));
console.log(triple(5));

Dizi Yöntemleriyle Kürleme

Curried işlevler, her biri her öğeyi almaya hazır tek argümanlı bir işlev ürettiği için map ve filter içine sorunsuzca yerleşir.

const greaterThan = min => value => value > min;

const over10 = greaterThan(10);
console.log([5, 12, 8, 20].filter(over10));

Kürleme ve Kısmi Uygulama Karşılaştırması

Kısmi uygulama, bazı argümanları sabitler ve kalanları daha sonraki tek bir çağrıya bırakır. Kürleme ise bir işlevi her zaman tek argümanlı çağrılar zincirine ayırır.

Kürleme, kısmi uygulamanın belirli ve tamamen ayrıştırılmış bir biçimidir.

const partial = (a, b) => c => a + b + c;
const curried = a => b => c => a + b + c;

console.log(partial(1, 2)(3));
console.log(curried(1)(2)(3));

Neden Kürleme?

Kürleme, küçük, birleştirilebilir ve yeniden kullanılabilir işlevleri teşvik eder. Sırada inceleyeceğiniz işlev bileşimiyle doğal bir uyum içindedir. Temel fikir şudur: Curried bir işlev hiçbir zaman «tamamlanmamış» değildir; yalnızca yeterli argüman alana kadar başka bir işlev döndürür.

const tag = name => content => '<' + name + '>' + content + '</' + name + '>';

const bold = tag('b');
console.log(bold('important'));
console.log(tag('i')('slanted'));

Hızlı Yoklama

const add = a => b => c => a + b + c; verildiğinde add(1)(2) neye eşit olur?

Özet: Kürleme

İşlevleri tek argümanlı zincirlere ayırmayı öğrendiniz:

  • Curried işlevler, kapanımlar aracılığıyla her argüman için yeni bir işlev döndürür.
  • İç içe ok işlevleri, kısa Curried tanımları sağlar.
  • Genel bir curry yardımcısı, yeterli sayıda argümanın ne zaman geldiğini anlamak için fn.length kullanır.
  • Kürleme, clean özelleştirme ve bileşim sağlar.

Sıkça Sorulan Sorular

“İşlevlerde Currying” dersi ücretsiz mi?

Evet — “İşlevlerde Currying” 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 JavaScript Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. JavaScript Academy kursu toplamda 4 dersten oluşur.

“İşlevlerde Currying” dersinde ne öğreneceğim?

Birden çok bağımsız değişken alan işlevleri zincirlere dönüştürün. JavaScript 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.

JavaScript Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te JavaScript 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 2. dersidir.

“İşlevlerde Currying” 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 JavaScript Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her JavaScript 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. Kısmi Uygulama
  2. İşlevlerde Currying
  3. İşlev Birleştirme
  4. pipe ve compose Oluşturma
← JavaScript Academy Sayfasına Dön