Haskell E-Posta Listesi

0
aycanirican
Haskell programlama konusunda açtığımız tartışma listesine tüm Haskell programcılarını bekliyoruz.
Katılımınızla Türkiye'de yerel bir Haskell grubu oluşturabiliriz. Tamamen işlevsel programlama yöntemlerini tartışabilir, günümüz problemlerine çözümler üretecek çalışmalar yapabiliriz.

Görüşler

0
simor
Hemen listeye ilk sorumu yönelteyim. Daha önce fonksiyonel gezegen logosunun taslaklarını yapmak için gerekli kişilere bu soruyu yöneltmiştim. Ama bu sefer daha normal bir şekilde soracağım.
0
tongucyumruk
Haskell güzel dil. Ben de merak uyandırmak için şunu yazayım:

let fib = 1:1:[x + y | (x,y) <- zip fib (tail fib)]

take 5 fib

Bunu GHC interpreter'da yazıp bir deneyin, bakalım neler oluyor. Başka bir dilde yapabilen beri gelsin...

Not: Kod benim değil, arakl^H^H^H^H^H alıntı yaptım...
0
FZ
Biraz hazırlık ile aşağıdaki yazılabiliyor (ne var yani, Haskell'de hiçbir şey için hazırlık yapmak gerekmiyor mu ki? :-p):


(define fibs

  (cons-stream 0

    (cons-stream 1

      (add-streams (tail fibs) fibs))))


ve sonra da ilk 5 Fibonacci sayısını şu şekilde sorabiliyoruz:


> (stream-section 5 fibs)

(0 1 1 2 3)


Ben de küçük bir arakl^H^H^H^H^H... eee, pardon, alıntı yaptım ;-) Fonda (take 5) çalarken kodlamaya devam ediyoruz...
0
eevrim
Benim karsilastigim problemler genellikle lazy evaluation degil. core-stream ile bir epoll trampoline'i bu i$i cozuyorduk. Asil problem lisp'in ad-hoc type sistemi. Dogru duzgun tanimlayamadigimiz type'lar uzerine overloading hack'leri ciddi problem yaratiyor.

Mesela, #lisp kanalinda surekli sorulan sorular vardir: Iki objenin esitligini nasil saglayacagim?
0
tongucyumruk
Öhüm, ya da strem falan uğraşmak yerine DrScheme 370'in Lazy Scheme modunu kullanırsınız.

(define zip

  (lambda (l1 l2)

    (map cons l1 l2)))


(define fib (cons 1 (cons 1 (map (lambda (i) (+ (car i) (cdr i))) (zip fib (cdr fib))))))

Tembel programcılar, tembel diller kullanır!
0
FZ
Denedim şimdi. Süpermiş! :)
0
aycanirican
fibonacci 0 = 0
fibonacci 1 = 1
fibonacci (n + 2) = fibonacci n + fibonacci (n + 1)

Bir başka tembel de bunu tercih edebilir.
0
FZ
Bir de ben bu tür kod örneklerinin çok tehlikeli olduğunu düşünüyorum, deneyimli programcılarda "eee, ne ki yani bu bir oyuncak örnek, buna bakıp mı karar vermemiz bekleniyor?" hissiyatı uyandırıyor genellikle. O yüzden Fibonacci, Quicksort, vb. küçük örneklere pek çok insan şüphe ile yaklaşıyor.

Onun yerine mesela GNU/Linux için 500 satırda kodlanmış esnek bir pencere yöneticisi olan xmonad gibi bir sistemin Haskell ile nasıl kodlandığının anlatılacağı A Taste of Haskell gibi bir seminer çok çok daha etkili olacaktır pek çok profesyonel programcı üstünde.
0
oetzi_
fibonacci serisi galiba hocam.... :p

Okulda haskell den pek nasibimi almadım. Ama şunu söyleyebilirim ki zor hesaplamaları yapmak kolay hesaplamaları yapmaktan daha kolay.
0
FZ
Yukarıda sağlam Haskell'cilerden SPJ'nin lafı geçmişken, kendisinin çalıştığı MS araştırma geliştirme lab.ından çıkma bir Haskell atraksiyonuna da bakılabilir: Visual Haskell
0
simor
Sanal makineler altında çalışan ms işletim sistemlerinin kokusunu mu alıyorum?.
0
pvc
İyide kimse bu listeye katılmamış. Katılan olmadıktan sonra liste açmanın ne anlamı var?
0
zekzekus
bugün itibari ile 28 kişi görüyorum şahsım dahil. fazla değil ama bu 28 kişiyi toplasan bir hiçten biraz fazla ederler herhalde :)) Ayrıca benzer konuları Lisp ekseninde tartıştığımız bir de cs-lisp listesi var ki oradaki katılımcı sayısı 100'ün üzerindeydi en son ve oldukça verimli tartışmalar yapıyoruz. Ve ayrıca listeyi açmadan kimse katılamaz listeye değil mi? yani yorumunuz biraz nedenselliği baş aşağı etmiş gözüküyor.
0
pvc
Ben o e-posta listesine baktım ve dişe dokunur bir şey göremedim. Fazla üye yok fakat olmaması çok da kötü değil. zamanla üyeler artabilir.
Görüş belirtmek için giriş yapın...

İlgili Yazılar

Haskell: Farklı Bir Programlama Dili

FZ

Değerli FM üyelerinden roktas'ın bana son yazdıklarını paylaşmadan edemedim.

Konu Haskell programlama dili ile ilgili. Debian'ın saygıdeğer isimlerinden John Goerzen, Free Software Magazin isimli dergide Haskell: A very different language başlıklı güzel ve detaylı bir makale yazmış.

Betik Diliyle Monad Kavramını Öğrenin

anonim

Fonksiyonel programlama yapabilmek için önemli bir teknik olan ve Haskell dili sayesinde duymaya başladığımız Monad kavramını evinizde betik diliyle öğrenmek için bir kılavuz.
Monad kullanımı saf fonksiyonel programlama dışında şart olmasa da bu kavramın getirdiği programlama disiplininin öğrenmeye değer olduğu vurgulanıyor. Ufkunuzu biraz daha genişletmek ve ilerde Haskell öğrenirseniz konuya aşina olmak için okuyabilirsiniz.

Sınırları Geçmek: Haskell ile Fonksiyonel Programlamayı Keşfedin

FZ

Better, Faster, Lighter Java ve Beyond Java kitaplarının yazarı Bruce Tate, Crossing Borders (Sınırları Geçmek) makale dizisinin bu bölümünde Haskell ile fonksiyonel programlamaya giriş yapıyor, bu paradigmayı ve dili iyi bildiği Java ve Ruby gibi geliştirme ortamları ile kıyaslıyor.

FM'de daha önce yayınlanmış Haskell ile ilgili makalelere buradan erişebilirsiniz.

Frag: Haskell ve Oyun Programlama

FZ

Frag, Haskell programlama dili ile geliştirilmiş üç boyutlu bir FPS tarzı oyun. GPL olarak sunulan oyun fonksiyonel programlama yöntemleri ile nasıl oyun kodlanabileceğine dair bir örnek.

Oyunun web sitesi: http://haskell.org/hawiki/Frag

Gerçek Dünyada Programlama için Haskell: Real World Haskell

FZ

Pratik ve gerçekçi örnekler üzerinden güçlü ve modern Haskell programlama dilini anlatan Real World Haskell kitabının yazılması tamamen bitti. Kitap yakında O'Reilly tarafından basılıp satılacak ancak Internet üzerinden bedelsiz olarak sunulmaya devam edilecek. Kitapla ilgili gelişmeleri blogundan takip edebilirsiniz.