Haskell fonksiyonel bir programlama dili midir?
İşlevsel yada fonksiyonel programlama dili ne demektir?
Diğer programlama dillleri ile fonksiyonel programlama yöntemlerini
kullanabilir miyiz?
core-haskell listesi için en iyi dileklerimle.
Fonksiyonel programlama dili için "patron ve işçi" kavramını ortaya
koysak yanlış olmaz sanırım. Patron "şu işi al bana sonuç getir
eleman, hadi bakalım." der. İşçi alır işi yapmak için çalışmaya
başlar. Eğer kendi altında buyruklarını dinleyecek birisi varsa ona da
işin bir kısmını verir. Fakat patronun verdiği emir tektir iş sadece
yapabilecek kişiler arasında pay edilmiştir. Ve sonucun döneceği nokta
ilk işlem sürecini başlatan kişi yani patrondur.İşi yaparken
kullanılan teknikler sonra başka işlerin yapımı içinde kullanılabilir.
Bunların tamamını alır bir pakete koyarsanız kütüphane dediğimiz
kavram oluşur.
Kod okunurluğu artar. Yapıya bakan biri dilin temellerine hakimse
hangi işin nerde bittiğini, süreçlerin nerde ne iş yaptığını
anlayabilir.
> > core-haskell listesi için en iyi dileklerimle.- Hide quoted text -
>
> - Show quoted text -
On Jul 16, 1:09 pm, "Tarık" <0x0...@gmail.com> wrote:
> Haskell için bilgim sınırlı. Fonksiyonelliğini ilerde beraberce
> irdeleriz. Fakat bir dilin fonksiyonelliği için söyleyebileceğim
> birkaç şey var.
>
> Fonksiyonel programlama dili için "patron ve işçi" kavramını ortaya
> koysak yanlış olmaz sanırım. Patron "şu işi al bana sonuç getir
> eleman, hadi bakalım." der. İşçi alır işi yapmak için çalışmaya
> başlar. Eğer kendi altında buyruklarını dinleyecek birisi varsa ona da
> işin bir kısmını verir. Fakat patronun verdiği emir tektir iş sadece
> yapabilecek kişiler arasında pay edilmiştir. Ve sonucun döneceği nokta
> ilk işlem sürecini başlatan kişi yani patrondur.İşi yaparken
> kullanılan teknikler sonra başka işlerin yapımı içinde kullanılabilir.
> Bunların tamamını alır bir pakete koyarsanız kütüphane dediğimiz
> kavram oluşur.
> Kod okunurluğu artar. Yapıya bakan biri dilin temellerine hakimse
> hangi işin nerde bittiğini, süreçlerin nerde ne iş yaptığını
> anlayabilir.
Merhaba,
Bana bu tanim daha cok 'procedural programming'e uygun gibi geldi. Bu
gibi tanimlari yapmasini pek beceremem, ama 'fonksiyonel programlama'
deyince aklima gelen seyleri siralayim (fonksiyonel programlamadan soz
edebilmek icin bunlarin hepsinin olmasina gerek yok tabii):
- fonksiyonlarin birinci sinif nesne olmalari (mesela degiskenlerde
tutulabilmeleri, parametre veya return degeri olarak
kullanilabilmeleri, vs.). Bu sekilde map, reduce gibi oyuncaklari
kullanabiliyoruz.
- lambda fonksiyonlari (isimsiz fonksiyonlar). Zaten bir onceki varsa
bunun olmamasi icin bir neden yok sanirim.
- currying. 3 parametre alan fonksiyona 2 parametre gonderirsek
elimizde 1 parametre alan bir fonksiyon olur.
Mesela: (f 1 2 3) === (((f 1) 2) 3),
veya: (\x y -> x+y) 5 === \y -> 5 + y
- simor'un soyledigi degiskene sadece bir defa deger atama meselesi.
Aslinda onlari degisken degil de parametre almayan fonksiyonlar olarak
da dusunebiliriz.
- monadlar, tembel degerleme (lazy evaluation), vs.