İçeriğe atla

Fonksiyonel programlama

Kontrol Edilmiş
Marko Elezović'in Scala'da Fonksiyonel Programlama ile kod ormanından kaçış, Zagreb, 2014

Bilgisayar biliminde fonksiyonel programlama programların fonksiyonları uygulayarak ve oluşturarak yapıldığı bir programlama paradigmasıdır.

Fonksiyon tanımlarının, programın çalışma durumunu güncelleyen bir dizi zorunlu ifade yerine, değerleri diğer değerlerle eşleyen ifade ağaçları olduğu bildirimsel programlama paradigmasıdır.

Fonksiyonel programlamada fonksiyonlar birinci sınıf vatandaşlar olarak ele alınır, yani adlara (yerel tanımlayıcılar dahil) bağlanabilir, bağımsız değişkenler olarak iletilebilir ve tıpkı diğer veri tipleri gibi diğer işlevlerden döndürülebilir. Bu, programların küçük fonksiyonların modüler şekilde birleştirildiği bildirimsel ve birleştirilebilir tarzda yazılmasına imkan verir.

Fonksiyonel programlama, yalnızca fonksiyonların kullanılmasıyla yazılmış programlardır. Fonksiyonel programların tipik özellikleri:

  • Atama deyimi bulunmaz. Değişkenlerin değeri bir kere verildi mi, bir daha değişmez.
  • Yan etkiler yoktur. Bir fonksiyonu çağırmak kendi sonucunu hesaplamaktan başka bir etki üretmez.

Dış bağlantılar

İlgili Araştırma Makaleleri

<span class="mw-page-title-main">C (programlama dili)</span> programlama dili

C, yapısal bir programlama dilidir. Bell Laboratuvarları'nda, Ken Thompson ve Dennis Ritchie tarafından UNIX işletim sistemini geliştirebilmek amacıyla B dilinden türetilmiştir. Geliştirilme tarihi 1972 olmasına rağmen yaygınlaşması Brian Kernighan ve Dennis M. Ritchie tarafından yayımlanan "C Programlama Dili" kitabından sonra hızlanmıştır. Günümüzde neredeyse tüm işletim sistemlerinin yapımında %95'lere varan oranda kullanılmış, hâlen daha sistem, sürücü yazılımı, işletim sistemi modülleri ve hız gereken her yerde kullanılan oldukça yaygın ve sınırları belirsiz oldukça keskin bir dildir. Keskinliği, programcıya sonsuz özgürlüğün yanında çok büyük hatalar yapabilme olanağı sağlamasıdır. Programlamanın gelişim süreciyle beraber programlamanın karmaşıklaşması, gereksinimlerin artması ile uygulama programlarında nesne yönelimliliğin ortaya çıkmasından sonra C programcıları büyük ölçüde nesne yönelimliliği destekleyen C++ diline geçmişlerdir.

OCaml, Fransız Ulusal Bilişim ve Uygulamaları Araştırma Kurumunda (INRIA) Xavier Leroy tarafından geliştirilen, ücretsiz ve özgür bir lisans altında sunulan, ML programlama dilleri ailesine mensup, hem yorumlanan hem de derlenip doğal makine koduna dönüştürülebilen gelişmiş bir fonksiyonel programlama dilidir.

Fortran, özellikle sayısal hesaplama ve bilimsel hesaplama için uygun olan genel amaçlı, yordamsal, zorunlu programlama dilidir.

Matematiksel analiz, hesaplamanın esas olduğu matematiğin en önemli kolu. Limit kavramı üzerine kurulmuştur. Eğri, yüzey ve fizik problemlerini bünyesine alarak gelişti. Bu tür konular, özel veya farklı değer kümeleriyle meşgul olan cebir ve aritmetiğin dışındaki problemlerdir. Bununla beraber, sonsuz kümelerin limit değerlerini kural haline getirme işlemlerini ihtiva ederler.

Bir programlama terimi olarak işlevsel (functional), kodun, saf bir matematik fonksiyonu şeklinde ifade edilebileceği anlamına gelir. Arı işlevsel programla dillerine örnek olarak Haskell verilebilir.

<span class="mw-page-title-main">Nesne yönelimli programlama</span> nesne kavramına dayalı programlama paradigması

Nesne yönelimli programlama veya kısaca NYP, Her işlevin nesneler olarak soyutlandığı bir programlama yaklaşımıdır. NYP destekleyen programlama dilleri yüksek seviye diller olarak adlandırılır.

<span class="mw-page-title-main">Sinüs (matematik)</span>

Matematikte sinüs, trigonometrik bir fonksiyon. Sin kısaltmasıyla ifade edilir.

<span class="mw-page-title-main">Kalkülüs</span>

Başlangıçta sonsuz küçük hesap veya "sonsuz küçüklerin hesabı" olarak adlandırılan kalkülüs, geometrinin şekillerle çalışması ve cebirin aritmetik işlemlerin genellemelerinin incelenmesi gibi, kalkülüs sürekli değişimin matematiksel çalışmasıdır.

Matematikte matematiksel programlama, eniyileme ya da optimizasyon terimi; bir gerçel fonksiyonu minimize ya da maksimize etmek amacı ile gerçek ya da tam sayı değerlerini tanımlı bir aralıkta seçip fonksiyona yerleştirerek sistematik olarak bir problemi incelemek ya da çözmek işlemlerini ifade eder. Örneğin bu problem şöyle olabilir:

Belirsiz, matematikte bize verildiği haliyle değerini belirleyemediğimiz ifadelere denir. Daha önce tanımlanmadığı için bir anlam ifade etmeyen tanımsız ifadelere kıyasla belirsiz ifadeler, eldeki verinin daha dikkatli incelenmesi sonucu bir değere sahip olurlar. Özellikle fonksiyonların limiti konusunda karşımıza çıkan bu durum, kötü bir yazım tercihinden dolayı çok kafa karışıklığına yol açmaktadır. Örneğin '0/0 belirsizliği' adındaki durum, aslında limitleri sıfıra giden iki fonksiyonun oranı ile ilgilidir, 0 sayısının 0 ile bölümü ile ilgili değil. Eğer bir noktada hem f(x), hem g(x) fonksiyonunun limiti sıfıra gidiyorsa, bu iki fonksiyonun oranının limiti '0/0 tipindeki belirsizlik' olarak geçer, sayısal değeri bu fonksiyonların ne olduğuna göre değişir. Ancak fonksiyonlar belirlendikten sonra oranlarının limiti de belirlenmiş olur.

<span class="mw-page-title-main">Olasılık kütle fonksiyonu</span>

Olasılık kuramı bilim dalında bir olasılık kütle fonksiyonu bir ayrık rassal değişkenin olasılığının tıpatıp belli bir değere eşit olduğunu gösteren bir fonksiyondur. Olasılık kütle fonksiyonu, olasılık yoğunluk fonksiyonundan farklıdır; çünkü olasılık yoğunluk fonksiyonu yalnızca sürekli rassal değişkenler için tanımlanmış olup doğrudan doğruya olasılık değerini vermezler. Olasılık yoğunluk fonksiyonunun bir belli değer aralığı için integrali alınırsa bu rassal değişkenin belirlenen değer aralığı için olasılığını verir.

<span class="mw-page-title-main">Harmonik fonksiyon</span>

Matematiğin matematiksel fizik alanında ve rassal süreçler teorisinde bir harmonik fonksiyon, Rn'nin U gibi açık bir kümesi üzerinde f : UR şeklinde tanımlı, Laplace denklemini, yani

<span class="mw-page-title-main">Doğrusal olmayan regresyon</span>

Doğrusal olmayan regresyon, istatistik bilimde gözlemi yapılan verilerin bir veya birden fazla bağımsız değişkenin model parametrelerinin doğrusal olmayan bileşiği olan ve bir veya daha çok sayıda bağımsız değişken ihtiva eden bir fonksiyonla modelleştirilmesini içeren bir regresyon (bağlanım) analizi türüdür. Veriler arka-arkaya yapılan yaklaşımlarla kurulan modele uydurularak çözümleme yapılır.

Matematikte fonksiyon uzayı bir X kümesinden bir Y kümesine tanımlı fonksiyonların oluşturduğu kümeye verilen bir addır. Fonksiyonlar kümesi yerine fonksiyon uzayı denilmesinin nedeni matematiğin kendi içindeki uygulamalarında bu kümenin genellikle topolojik uzay veya vektör uzayı olarak ortaya çıkmasıdır.

Programlama paradigmaları, programlama dillerini özelliklerine göre sınıflandırmanın bir yoludur. Diller birden fazla paradigma içinde sınıflandırılabilir.

<span class="mw-page-title-main">Fonksiyon (programlama)</span> ana kapsamı bir değer döndürmek olan alt program

Fonksiyon, bilgisayar bilimi ve çeşitli programlama dillerinde eylem ya da eylemleri gerçekleştirmek için yazılan ve ana programa parametre ve fonksiyon dönüş değeri ile bağlı olan altyordamlardır. Fonksiyonlar çeşitli programlama dillerinde farklı olabilirler, ancak en önemli özelliklerinden birisi sonucu doğrudan vermeleridir.

<span class="mw-page-title-main">Yapay zekâya yönelik programlama dilleri listesi</span> Vikimedya liste maddesi

Yapay zekâ araştırmacıları yapay zekâya yönelik programlama dilleri geliştirmişlerdir.

Bilgisayar bilimi, matematik, ekonomi ve biyoinformatikte dinamik programlama karmaşık bir problemi tekrarlanan alt problemlere bölerek, her bir alt problemi yalnız bir kere çözüp daha sonra bu çözümü kaydederek karmaşık problemin çözümünde kullanma yöntemidir. Bir alt problem çözüldükten sonra tekrar çözülmesi gerektiğinde daha önce kaydedilen çözüm kullanılarak zaman kazanılır, ancak alt problemlerin kaydedileceği daha fazla alana gereksinim duyulur. Yani dinamik programlama algoritmaları alandan ödün verilerek zamandan kazanılmasını sağlar. Dinamik programlama algoritmaları optimizasyon problemlerinin çözümünde yaygın olarak kullanılır.

Bilgisayar biliminde, bildirimsel programlama bir programlama paradigmasıdır. —bilgisayar programlarının yapısını ve öğelerini oluşturma stili— bir hesaplamanın mantığını kontrol akışını tanımlamadan ifade eder.

Bilgisayar biliminde zorunlu programlama ya da emperatif programlama, programın durumunu değiştiren ifadeler kullanan yazılımın programlama paradigması'dır. Doğal dillerdeki zorunlu kipin komutları ifade etmesi gibi, zorunlu program da bilgisayar'ın gerçekleştireceği komutlardan oluşur. Zorunlu programlama, beklenen sonuçlarının üst düzey tanımlarından ziyade programın nasıl adım adım çalıştığını açıklamaya odaklanır.