Anonymous, Currying and Nested function

Merhaba arkadaslar, bu yazımda farklı fonksiyon tiplerine değinmeye çalışacağım. Bu yazıda anonymous , currying ve nested fonksiyonları ve bazı özelliklerini anlatıcağım. Fonksyionların da bir obje olduğunu unutmayalım.

 

Anonymous Function

Java 8 ile gelen lambda özelliğine eş değerdir. Methoda paslayabiliriz yada bir değişkene atayabiliriz. Function literal olarak da geçebiliyor bazı yerlerde. Kısa bir örnekle bakalım;

* Kısaca 1’den 10’a kadar bir listeyi oluşturup filtreledik. Çıktı -> List(2, 4, 6, 8, 10)

* Anonymus fonksyionu ise şu deyimle kullandık ; (i : Int) => i%2==0

* Yukarıdaki kod yapısını şu şekilde de kullanabiliriz;

** first-class function

Scala shellde şunu yazalım;

* Bize “Int => Int = <function1>” gibi bir çıktı verecektir. Int parametre alan ve Int return eden bir fonksiyon.

Scalanın fonksionel bir dil olmasının avantajlarını fazlasıyla görebiliyoruz. İncrease ve multiplication methodlarını değişkenimize atayalım ve kullanalım.

* Parametre almayan method tanımı da yapabiliriz;

* Asıl olayın = sonrasındaki () => {…} syntaxında olduğunu unutmayalım.

Currying Function

Currying tekniği birden fazla argüman alan methodlarda her argüman için chain of function(zincirleme) şekline dönüştüren yapıdır.(Türkçe anlamı bana da karmaşık geliyor )

Syntax olarak (x: Type)( y : Type) gibi bir olayı var.

* foo(“Çaysever”)(“Alican”) olarak çağrıldığına dikkat edelim.

* Ayrıca şu şekillerde de çağırabiliriz; foo(“Çaysever”){“Alican”} yada foo{“Çaysever”}{“Alican”} gibi.

Nested Function

İç içe fonksiyonlar yazabiliriz , şöyleki;

Function Argument

Scalanın herşeye obje gibi davrandığından söz etmiştik. Ve fonksiyonlarda bir objedir. Dolayısıyla bir fonksiyonu başka bir fonksiyona argüman olarak gönderebiliriz.

* oncePerSecond methodu callback adında bir argüman ile tanımlamanmaktadır.  Şu şekilde çağırabiliriz;

* 1 sn aralıklarla timeFiles methodu çağrılacaktır. Burada fonksiyonların da bir obje olduğunu görmüş olduk.

* Az önce görmüş olduğumuz anonymus function şeklinde de oncePerSecond methodunu çağırabiliriz.

* Her sn’de “Çay Demle” mesajı görüntülenecektir

* Yazımı burada sonlandırıyorum, gir sonraki yazıda görüşmek dileğiyle. ~ Alican Akkus

* Mutlu kalın, kod’la kalın ve bol bol çay için

1102 Total Views 2 Views Today