fonksiyonel programlama *
-
oncelikle: fonksiyonel programlama, zannedilebilecegi gibi "islevsel programlama" degil fonksiyon tabanli programlamaya yakin bir kavramdir.
fonksiyonel programlama dilleriyle yapilir ama bu ayrim gunumuzde hem imperatif/nesne yonelimli dillere fonksiyonel ozellikler eklenmesiyle (bkz: linq), hem de fonksiyonel programlama dillerine nesne yonelimli ve imperatif ozellikler eklenmesiyle (bkz: f#) pek kalmamistir.
fonksiyonel programlama disiplini yazilimi modellerken yazilimin fonksiyonlardan olstugunu temel alir ve veri yapilarinin icerigini degistirmek yerine onlardan yeni veri yapilari tureten fonksiyonlar hayal eder. tasarim ve gelistirme sureci bu kafayla isler.
bu yuzden bildigimiz icini degistirdigimiz degisken kavrami fonksiyonel programlamada varolsa bile kullanimindan mumkun oldugunca kacinilir. zira bu degisken orucunun en buyuk avantaji programin state konusundaki cakismalarini minimize etmeyi saglamasi ve multi threading gibi isleri cakismalardan kacinarak cok kolay sekilde yapabiliyor olmasidir.
tarihteki ilk fonksiyonel programlama dili lisp'tir. gunumuzdeki populer ornekleri ise ocaml ve haskell'dir. python/ruby gibi diller de fonksiyonel yapilari destekliyor olabilirler ama onlar hakkinda cok bilgim yok.
ayrica .net dunyasindaki gelecek vaadeden dil ise ocaml'dan turemis olan f#'tir.
(bkz: yapisal programlama)
(bkz: nesne yonelimli programlama)
(bkz: generic programming) -
-
http://en.wikipedia.org/…iki/functional_programming
adresinden bu konu hakkında daha geniş ingilizce bilgiye ulaşabilirsiniz. -
(bkz: scheme)
(bkz: standard ml)
(bkz: erlang)
(bkz: haskell)
(bkz: lambda calculus)
(bkz: combinatory logic) -
örnek olması açısından...
c'de yazacağımız aşağıdaki fonsiyon ile
double ortalama (double a, double b)
{
double toplam = a + b;
return toplam / 2;
}
ocaml'da yazacağımız aşağıdaki fonksiyon aynı şekilde çalışır...
let ortalama a b =
let toplam = a +. b in
toplam /. 2.0;;
c'deki toplam değişken, ocaml'daki toplam ise ortalama fonksiyonunun içinde tanımlanmış başka bir fonksiyondur. -
(bkz: isabelle)
-
günümüzde önemi anlaşılmaya başlanan bir yazılım tekniğidir. yazılım tasarımını nesneler ile değilde fonksiyonlar ile yapar. yazılan fonksiyonları pure function tarzı ile tasarlamaya çalışır. bu sayede de side effect den kaçınmaya çalışılır. fonksiyonel programlamada bir diğer önemli konu ise fonksiyon tasarımı döngüler içerisinde dönen komutlar ile basamak basamak yapılmaz, sadece matematiksel bir yaklaşımla formülize edilir. önemli dillerinden bazıları ise f# ve haskell dilleridir.
(bkz: fonksiyonel programlama dili) -
(bkz: scala)
-
-
recursive veri yapilari icin bicilmis kaftan olan programlama paradigmasi. bir ornegi olarak haskell'i kullandim. hersey birer fonksiyondur bu dillerde degisken diye birsey yoktur.
a = 3 dedigimizde burada a isminde 3 donen sabit bir fonksiyon tanımlamış oluyoruz.
ekşi sözlük kullanıcılarıyla mesajlaşmak ve yazdıkları entry'leri
takip etmek için giriş yapmalısın.
hesabın var mı? giriş yap