Python yüksek dereceli fonksiyonlar

Python işlevleri ve meth

Bir geliştirici olarak muhtemelen normal JavaScript işlevlerini kullandınız. Birinci dereceden işlevler olarak adlandırılır,  bir işlevi parametre olarak almazlar veya bir işlev döndürmezler.

Bu makale daha yüksek dereceli işlevlerden (HOF) bahseder. Bunlar, geliştiricilerin bir işlevi argüman olarak ileterek veya bir işlev döndürerek kodu daha okunaklı hale getirmek için kodu ayrıştırmasına yardımcı olan işlevlerdir. Sizi HOF ve işlevsel programlama ile tanıştırmak için bazı temel örnekleri gözden geçireceğiz ve çalışmak için yüksek dereceli işlev yapısını kullanan iki popüler gelişmiş dizi yöntemi hakkında konuşacağız.




Temel Yüksek Dereceli İşlev Örnekleri

h2>

JavaScript'te Yüksek Dereceli İşlevleri kullanmanın birkaç farklı yolu vardır.

Hesap Makinesi

Argüman olarak geri çağırma işlevini alan temel bir HOF ile başlayalım. ve bazı bağımsız değişkenlerle bu geri aramayı döndürür: 

//higher order function function highOrderFunction(num1 , num2, cb) { dönüş cb(sayı1, num2); //bu, cb işlevimizi çağırır ve argümanlarımızı geri çağırmaya iletir. } //geri aramalar function add(sayı1, num2) { dönüş num1 + num2; } işlev çarpma(sayı1, sayı2) { dönüş sayı1 * sayı2; } işlev bölme(sayı1, sayı2) { geri sayı1/sayı2; } işlev çıkarma(sayı1, sayı2) { geri sayı1 - sayı2; } işlev modulo(sayı1, sayı2) { geri sayı1 % sayı2; } console.log(higherOrderFunction(43, 13, add));

Burada iki tür işlevimiz vardır: bir geri arama döndüren daha yüksek düzeyde bir işlev ve iki sayı üzerinde bir işlem. Snippet'in sonunda, higherOrderFunction() öğesine bir işlev çağrısı yaparız. Bu işlev, verilen parametrelerle geçirilen cb'nin çağrılmasının sonucunu döndürür. Tüm olası aritmetik operatörler için bir geri arama işlevi yazdıysanız, ihtiyaç duyduğunuz işlemi çağırmak için highOrderFunction işlevini kullanabilirsiniz.


Olay Dinleyici

DOM (belge nesne modeli) üzerindeki bir öğeye bir olay dinleyicisi eklediğinizde oluşan, daha yüksek dereceli bir işlevin başka bir örneğidir.Şu örneği alın:  

          < ;body>  

Bu örnekte, HTML'de bir düğme oluşturdum, JavaScript kullanarak onu seçtim ve ona bir olay dinleyicisi ekledim. Olay dinleyicisinin yapısı, basit bir üst düzey işlevin yapısıdır – onun ikinci argüman olarak anonim bir işlevde sürer.
Bir olay dinleyicisinde üst düzey işlevin nerede olduğunu gösteren vurgulanmış alan.

Vurgulanan bölüm sizin üst düzey işlevinizdir.

Katılımcıların %81'i bunu düşündüklerini belirtti. bir eğitim kampına katıldıktan sonra teknik iş beklentileri konusunda daha güvende hissettiler. Bugün bir eğitim kampı ile eşleşin.

Ortalama bir eğitim kampı mezunu, bir eğitim kampına başlamaktan ilk işini bulmaya kadar, kariyer geçişinde altı aydan daha az zaman harcadı.

JavaScript Yerleşik Dizi Yöntemleri ES6'da yeni olan, bir dizi üzerinde yineleme yapmak ve onu işlemek veya değerleri değiştirilmiş tamamen yeni bir dizi döndürmek için kullanabileceğimiz bu özel yüksek dereceli işlevlerdir. 

Almaya başladığımız gibi JavaScript'te daha karmaşık problem çözmede, diziler üzerinde yineleme yaptığımızda yazdığımız mantığın bir kısmını soyutlamayı düşünmeye başlayın. Bu yüksek dereceli işlev dizisi yöntemlerini kullanmak, daha iyi bir JS geliştiricisi olmanıza yardımcı olur.

Örneğin, bir dizi profesörümüz olduğunu varsayalım:

UVNRam00sqZ2XWlWgK36aj3tP7oHL2i1wM3JLEDbcqwXs IBMxRNlmbknHgjO JFy32VHF7u4glA1btMETcPhCPyoZ0GuToxG0D7MlPWlNMaWsRUNJtkMRNP4kPAYBdORaCwWiRF

forEach

ES6'yı kullanmadan önce dizi üzerinde yineleme yapmak ve her öğeyi değiştirmek istiyorsak, yapmamız gereken şudur:

fonksiyon forEachES5(arr){ for(let i = 0; i < dizi.uzunluk; i++) { dizi[i] = "Profesör " + dizi[i]; } dönüş dizisi; } console.log(forEachES5(professors));

ES6 sözdizimi, forEach yöntemini kullanarak kodu ayrıştırmamıza olanak tanır:

fonksiyon forEachES6(arr) { arr.forEach((profesör, indeks, origArr) => { origArr[index] = "Profesör " + profesör; }); dönüş yönü; }

Bu forEach yöntemi, onu daha yüksek dereceli bir işlev yapmak için ilk parametresi olarak bir geri çağırma işlevini alır. Bu geri arama işlevi temelde “eylemdir” dizideki her öğe üzerinde gerçekleştirilir. Ek olarak, forEach yöntemi ayrıca isteğe bağlı ikinci ve üçüncü parametreleri olarak bir dizini ve bir diziyi alır. 

ForEach yönteminde (ve diğer yerleşik yöntemlerde olduğu gibi) bu parametrelerde sipariş önemlidir. -dizi yöntemlerinde). Birincisi her zaman geri çağırma işlevidir, ikincisi her zaman dizideki öğenin indeksidir ve üçüncüsü her zaman dizinin kendisinin bir kopyasıdır.

ForEach yöntemi, bunu yapmanın başka bir yoludur. JavaScript'te bir for döngüsü sunun. Hiçbir şey döndürmez. Yöntem, zaten orada olanı manipüle eder ve onunla ne yapmak istediğinizi belirtirseniz, birlikte çalıştığınız diziye kaydeder.

Map

ForEach'e en yakın yöntem yöntem harita yöntemidir. Bu yöntemin yeni bir dizi döndürmesi dışında, hemen hemen aynı şekilde çalışır. Geri çağırma işlevinde değiştirdiğiniz herhangi bir şey orijinal diziyi etkilemeyecektir.

Es6 öncesi nasıl göründüğüne bir harita bakalım:

fonksiyon haritasıES5(arr){ let newArr = []; for(let i = 0; i < dizi.uzunluk; i++) { newArr.push("Profesör " + dizi[i]); } yeniArr döndür; }

Gördüğünüz gibi, yapmamız gereken for döngümüzün dışında yeni bir dizi başlatmaktı, böylece ona yeni değerler gönderebiliriz. O zaman aslında başka bir yerde kullanabilmek için yeni dizimizi döndürmemiz gerekiyor!

ES6 ve harita yöntemiyle, onu daha okunaklı kılmak için bu mantığın bir kısmını soyutlayabiliriz:< /p>

function mapWithES6(arr) { const mapped = arr.map(profesör => { return "Profesör" + profesör; }) haritalanmış dönüş; }

Harita yönteminin ve bunun gibi diğer dizi yöntemlerinin, özellikle azaltma ve filtreleme işleviyle ilgili özelliği, onu bir değişkene atayabilir ve döndürebilir veya yalnızca tüm işlev tamamen! Yeni bir dizi için zorlamaya gerek yok – bu harita yöntemiyle sizin için yapılır. Harita yöntemi geri çağırma işlevinizin mantığında bir dönüş değeri olduğunu unutmayın!





Sonuç:

Yüksek Dereceli İşlevler, daha iyi bir geliştirici olmanıza yardımcı olmak için JavaScript'te son derece önemli bir kavramdır. Kodunuzu daha okunabilir hale getirmek için bazı mantığı soyutlamaya yardımcı olacaktır. , ve bazı durumlarda daha performanslıdır.

Bu öğreticide, temel hesap makinesi yöntemlerinden olay dinleyicilerine ve gelişmiş dizi işlevlerine kadar Yüksek Dereceli İşlevler yazmanın farklı yollarından bazılarını inceledik. Bunda ustalaştıktan sonra, sorunlara daha karmaşık çözümler sunmaya hazırsınız!





Python yüksek dereceli fonksiyonlar: StackOverflow Questions

Tutorials