core-haskell

13 views
Skip to first unread message

simor

unread,
Jul 16, 2007, 6:06:49 AM7/16/07
to core-haskell
Merhaba,


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.

Tarık

unread,
Jul 16, 2007, 7:09:19 AM7/16/07
to core-haskell
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.

ozgurguclu

unread,
Jul 16, 2007, 9:26:05 AM7/16/07
to core-haskell
bu grubun girişi bu şekilde olcak sanırım yavaş yavaş, okuldayken ödev
vermişlerdi ordan tanışmıştım haskell le çok uyuz olmuştum, sanki elim
kolum bağlanmıştı, haskelle programlamaya başlamadan önce sanırım,
psikolojik olarak hazırlamak lazım kendimizi, bir değişkene tek değer
atamak ne demek? allah sabır versin, güzelliği ne peqi stabilitesi?
bir fonksiyon varsa nolursa olsun aynı girişe aynı çıkış verir,
haskell böylece bunu garanti etmiş oluo? fonksiyonel dil olma
özelliğini böylecek kazanıyo.

> > core-haskell listesi için en iyi dileklerimle.- Hide quoted text -
>
> - Show quoted text -

myavuzselim

unread,
Jul 16, 2007, 10:23:41 AM7/16/07
to core-haskell

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.

Reply all
Reply to author
Forward
0 new messages