Birinci sınıf işlev

Birinci sınıf işlev dünyanın her yerindeki insanların dikkatini çeken bir temadır. Ortaya çıktığı günden bu yana büyük ilgi uyandırmış ve birçok tartışma ve tartışmaya konu olmuştur. Birinci sınıf işlev, günümüzdeki geçerliliğinden veya tarihsel etkisinden dolayı toplumun geneli için büyük önem taşıyan bir konu olmaya devam ediyor. Bu yazıda Birinci sınıf işlev'in farklı boyutlarını ve hayatımızın farklı yönleri üzerindeki etkisini derinlemesine inceleyeceğiz. Kökeninden popüler kültür üzerindeki etkisine kadar Birinci sınıf işlev'in tarihe nasıl damgasını vurduğuna ve günümüzde nasıl güncelliğini koruduğuna bakacağız.

Bir programlama dilinin, o dildeki fonksiyonları eğer bir değişken gibi ele alınabiliyorsa o dil “Birinci Sınıf Fonksiyonlar”a sahip demektir. Örneğin:

Fonksiyonu bir değişkene atama

const foo = () => {
  console.log("foobar");
};
foo(); // Değişkeni kullanarak çağırdık.
// foobar

Burada biz bu fonksiyonu isimsiz şekilde tanımladık, () ve değişken ismi ile fonksiyonu çağırdık.

Ayrıca bu çağırma işlemi fonksiyonu etkilemez.

Callback (Bir fonksiyonu parametre olarak verme)

function sayHello() {
  return "Hello, ";
}
function greeting(helloMessage, name) {
  console.log(helloMessage() + name);
}
// "sayHello" fonksiyonunu "greeting" fonksiyonuna parametre olarak verdik.
greeting(sayHello, "JavaScript!");
// Hello, JavaScript!

Tanımladığımız sayHello() fonskiyonunu, tanımladığımız diğer bir fonksiyon olan greeting() fonksiyonuna parametre olarak gönderdik. sayHello() fonksiyonu bize "Hello, " dönüyordu.

Ardından 2. parametreyi ise "JavaScript!" olarak tanımladığımız için sonuç, Hello, JavaScript! şeklinde döndü.

Not: Bu işleme "Callback Function" adı verilir.

Return Fonksiyonları

function sayHello() {
  return () => {
    console.log("Hello!");
  };
}

JavaScript’te return ile fonksiyon döndürebilirsiniz.

Not: Buna "Yüksek Dereceli Return" denir.