Python yüksek dereceli fonksiyonlar

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öndurmezler.

Bu makale daha yuksek dereceli i≈ülevlerden (HOF) bahseder. Bunlar, geli≈ütiricilerin bir i≈ülevi arguman olarak ileterek veya bir i≈ülev d√∂ndurerek 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 yuksek dereceli i≈ülev yapƒ±sƒ±nƒ± kullanan iki populer geli≈ümi≈ü dizi y√∂ntemi hakkƒ±nda konu≈üacaƒüƒ±z.

Temel Yuksek Dereceli İşlev Örnekleri

h2>

JavaScript’te Yuksek Dereceli ƒ∞≈ülevleri kullanmanƒ±n birkaç farklƒ± yolu vardƒ±r.

Hesap Makinesi

Arguman 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√∂ndurur:

Burada iki tur i≈ülevimiz vardƒ±r: bir geri arama d√∂nduren daha yuksek duzeyde bir i≈ülev ve iki sayƒ± uzerinde 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√∂ndurur. Tum 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) uzerindeki bir öğeye bir olay dinleyicisi eklediğinizde oluşan, daha yuksek dereceli bir işlevin başka bir örneğidir.Şu örneği alın:

Bu √∂rnekte, HTML’de bir duƒüme olu≈üturdum, JavaScript kullanarak onu seçtim ve ona bir olay dinleyicisi ekledim. Olay dinleyicisinin yapƒ±sƒ±, basit bir ust duzey i≈ülevin yapƒ±sƒ±dƒ±r ‚Äì onun ikinci arguman olarak anonim bir i≈ülevde surer.
Bir olay dinleyicisinde ust duzey işlevin nerede olduğunu gösteren vurgulanmış alan.

Vurgulanan bölum sizin ust duzey işlevinizdir.

Katƒ±lƒ±mcƒ±larƒ±n %81’i bunu du≈üunduklerini belirtti. bir eƒüitim kampƒ±na katƒ±ldƒ±ktan sonra teknik i≈ü beklentileri konusunda daha guvende hissettiler. Bugun 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 uzerinde yineleme yapmak ve onu i≈ülemek veya deƒüerleri deƒüi≈ütirilmi≈ü tamamen yeni bir dizi d√∂ndurmek için kullanabileceƒüimiz bu √∂zel yuksek dereceli i≈ülevlerdir.

Almaya ba≈üladƒ±ƒüƒ±mƒ±z gibi JavaScript’te daha karma≈üƒ±k problem ç√∂zmede, diziler uzerinde yineleme yaptƒ±ƒüƒ±mƒ±zda yazdƒ±ƒüƒ±mƒ±z mantƒ±ƒüƒ±n bir kƒ±smƒ±nƒ± soyutlamayƒ± du≈üunmeye ba≈ülayƒ±n. Bu yuksek dereceli i≈ülev dizisi y√∂ntemlerini kullanmak, daha iyi bir JS geli≈ütiricisi olmanƒ±za yardƒ±mcƒ± olur.

Örneğin, bir dizi profesörumuz olduğunu varsayalım:

UVNRam00sqZ2XWlWgK36aj3tP7oHL2i1wM3JLEDbcqwXs IBMxRNlmbknHgjO JFy32VHF7u4glA1btMETcPhCPyoZ0GuToxG0D7MlPWlNMaWsRUNJtkMRNP4kPAYBdORaCwWiRF

forEach

ES6’yƒ± kullanmadan √∂nce dizi uzerinde yineleme yapmak ve her √∂ƒüeyi deƒüi≈ütirmek istiyorsak, yapmamƒ±z gereken ≈üudur:

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

Bu forEach y√∂ntemi, onu daha yuksek 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 uzerinde gerçekle≈ütirilir. Ek olarak, forEach y√∂ntemi ayrƒ±ca isteƒüe baƒülƒ± ikinci ve uçuncu 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 uçuncusu her zaman dizinin kendisinin bir kopyasƒ±dƒ±r.

ForEach y√∂ntemi, bunu yapmanƒ±n ba≈üka bir yoludur. JavaScript’te bir for d√∂ngusu sunun. Hiçbir ≈üey d√∂ndurmez. Y√∂ntem, zaten orada olanƒ± manipule 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√∂ndurmesi 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örunduğune bir harita bakalım:

G√∂rduƒüunuz gibi, yapmamƒ±z gereken for d√∂ngumuzun 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√∂ndurmemiz gerekiyor!

ES6 ve harita y√∂ntemiyle, onu daha okunaklƒ± kƒ±lmak için bu mantƒ±ƒüƒ±n bir kƒ±smƒ±nƒ± soyutlayabiliriz:< /p>

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√∂ndurebilir veya yalnƒ±zca tum 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√∂nu≈ü deƒüeri olduƒüunu unutmayƒ±n!

Sonuç:

Yuksek 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 Yuksek Dereceli ƒ∞≈ülevler yazmanƒ±n farklƒ± yollarƒ±ndan bazƒ±larƒ±nƒ± inceledik. Bunda ustala≈ütƒ±ktan sonra, sorunlara daha karma≈üƒ±k ç√∂zumler sunmaya hazƒ±rsƒ±nƒ±z!

Shop

Learn programming in R: courses

$

Best Python online courses for 2022

$

Best laptop for Fortnite

$

Best laptop for Excel

$

Best laptop for Solidworks

$

Best laptop for Roblox

$

Best computer for crypto mining

$

Best laptop for Sims 4

$

Latest questions

NUMPYNUMPY

psycopg2: insert multiple rows with one query

12 answers

NUMPYNUMPY

How to convert Nonetype to int or string?

12 answers

NUMPYNUMPY

How to specify multiple return types using type-hints

12 answers

NUMPYNUMPY

Javascript Error: IPython is not defined in JupyterLab

12 answers

News


Wiki

Python OpenCV | cv2.putText () method

numpy.arctan2 () in Python

Python | os.path.realpath () method

Python OpenCV | cv2.circle () method

Python OpenCV cv2.cvtColor () method

Python - Move item to the end of the list

time.perf_counter () function in Python

Check if one list is a subset of another in Python

Python os.path.join () method