Kısmi Uygulama ve Curry
Birden çok bağımsız değişken alan işlevleri curry biçimlerine dönüştürün.
Kısmi Uygulama ve Curry, CoddyKit'te ücretsiz bir TypeScript 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, TypeScript Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. TypeScript 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, tek bağımsız değişken alan işlevler zincirine dönüştürür. f(a, b) yerine f(a)(b) çağrısı yapılır.
Klasik Örnek
Burada add bir sayı alır ve bir sonraki sayıyı bekleyen bir işlev döndürür. TypeScript, iç içe işlev türlerini otomatik olarak çıkarır.
const add = (a: number) => (b: number) => a + b;
console.log(add(2)(3)); // 5Kürlenmiş İşlevi Türlendirme
Açık tür, zinciri net biçimde gösterir: işlev döndüren bir işlev. Her ok, bir bağımsız değişkene karşılık gelir.
type Add = (a: number) => (b: number) => number;
const add: Add = a => b => a + b;
console.log(add(10)(5)); // 15Kısmi Uygulama
Kısmi uygulama, bazı bağımsız değişkenleri şimdi sabitleyip kalanları daha sonra sağlamaktır. Kürlenmiş bir işlevle bu, işlevi daha az adımda çağırmaktan ibarettir.
const add = (a: number) => (b: number) => a + b;
const add10 = add(10); // partially applied
console.log(add10(1), add10(2)); // 11 12Kısmi Uygulama Neden Yararlıdır
Genel işlevlerden özelleştirilmiş işlevler oluşturabilirsiniz. add10, genel add işlevinden türetilmiş, yeniden kullanılabilir ve adlandırılmış bir araçtır; okunabilirliği ve yeniden kullanımı artırır.
Üç Bağımsız Değişkeni Kürleme
Bu yaklaşım, bağımsız değişken sayısı ne olursa olsun kullanılabilir. Her düzey, son değer üretilene kadar bir kapanım içinde bir bağımsız değişkeni yakalar.
const clamp = (min: number) => (max: number) => (x: number) =>
Math.min(Math.max(x, min), max);
const toByte = clamp(0)(255);
console.log(toByte(300), toByte(-5)); // 255 0map ve filter İçin Harika
Kürlenmiş işlevler dizi yöntemlerine kolayca uyar; çünkü map tek bağımsız değişkenli bir işlev bekler. Kısmi uygulama tam olarak böyle bir işlev üretir.
const mul = (a: number) => (b: number) => a * b;
const triple = mul(3);
console.log([1, 2, 3].map(triple)); // [3, 6, 9]Genel Kürleme Yardımcısı
İki bağımsız değişkenli bir işlevi kürleyen türlendirilmiş bir yardımcı yazabilirsiniz. Genel türler, parametre ve dönüş türlerini kesin tutar.
function curry2<A, B, R>(f: (a: A, b: B) => R) {
return (a: A) => (b: B) => f(a, b);
}
const join = curry2((a: string, b: string) => a + b);
console.log(join("foo")("bar")); // foobarKapanımlar Bağımsız Değişkenleri Yakalar
Kürleme, döndürülen her işlevin önceki bağımsız değişkenleri kapanımında tutması sayesinde çalışır. Bu değerler, son çağrı onları kullanana kadar yaşamını sürdürür.
const greet = (greeting: string) => (name: string) =>
greeting + ", " + name;
const hi = greet("Hi");
console.log(hi("Sam")); // Hi, SamNe Zaman Kürleme Yapılmamalı
Her işlevi kürlemek okunabilirliği azaltabilir. Kısmi uygulama gerçekten yararlı olduğunda, örneğin yeniden kullanılabilir yardımcıları yapılandırırken veya işlem hatlarını birleştirirken kullanın.
Kürleme ve Varsayılan Bağımsız Değişkenler
Varsayılan parametreler varsayılan değerler sağlar, ancak aşamalı uygulama sağlamaz. Kürleme gerçek bir kısmi uygulama sağlar; aktarabileceğiniz ve yeniden kullanabileceğiniz gerçek bir işlev döndürür.
Kısa Kontrol
Bu ders için kısa bir kontrol.
Özet
Kürleme, f(a, b) ifadesini f(a)(b) biçimine dönüştürür; bu, iç içe oklarla türü belirtilen tek bağımsız değişkenli fonksiyonlar zinciridir. Ardından kısmi uygulama, yeniden kullanılabilir özelleştirilmiş fonksiyonlar oluşturmak için baştaki bağımsız değişkenleri sabitler; bunu kapanımlar sağlar.
Sıkça Sorulan Sorular
“Kısmi Uygulama ve Curry” dersi ücretsiz mi?
Evet — “Kısmi Uygulama ve Curry” 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 TypeScript Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. TypeScript Academy kursu toplamda 4 dersten oluşur.
“Kısmi Uygulama ve Curry” dersinde ne öğreneceğim?
Birden çok bağımsız değişken alan işlevleri curry biçimlerine dönüştürün. TypeScript 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.
TypeScript Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te TypeScript 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.
“Kısmi Uygulama ve Curry” 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 TypeScript Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her TypeScript 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
- Saf İşlevler ve Değişmezlik
- Kısmi Uygulama ve Curry
- Türlerle İşlev Birleştirme
- Türleri Belirlenmiş pipe ve flow Yardımcıları