5 adımda Haskell
Haskell salt işlevsel ve genel maksatlı bir programlama dilidir. Bu sayfa size en hızlı şekilde Haskell'e başlamayı sağlayacaktır.
Haskell'i kurmak[edit]
Diğer programlama dillerin gibi, Haskell'in de iki tadı var: birisi, toplu işlemeye yönelik (derleyici), diğeri de etkileşimli (yorumlayıcı). Etkileşimli olan bir sistem size bir komut satırında ifadeler değerlendirme ve deney yapma olanağını sağlıyor, ondan dolayı bu tür bir sistem ile başlamayı tavsiye ederiz.
GHC | Derleyici ve yorumlayıcı (GHCi) | Muhtemelen en çok özellikleri içeren sistem |
Hugs | sadece yorumlayıcı | GHC'den daha hafif ve başka platformlara daha kolay taşınabilir. |
GHC ve Hugs ikisi de Windows'da da işliyor, ancak Hugs'ın o platform ile bütünleşmesi daha iyi. Mac OS X'de Haskell kurmak için ayrıntılı bilgi de mevcuttur.
Haskell'e başlamak[edit]
Bir terminali açınız. Eğer GHC'i kurduysanız, komut satırında ghci giriniz (GHC yorumlayıcı komutunun ismidir). Eğer Hugs'ı seçtiyseniz, hugs giriniz.
$ ghci ___ ___ _ / _ \ /\ /\/ __(_) / /_\// /_/ / / | | GHC Interactive, version 6.4, for Haskell 98. / /_\\/ __ / /___| | http://www.haskell.org/ghc/ \____/\/ /_/\____/|_| Type :? for help. Loading package base-1.0 ... linking ... done. Prelude>
Kendinizi yeni bir istem (prompt) ile başbaşa bulacaksınız. Haskell sistemi şimdi hizmete hazır vaziyette sizden veri bekliyor.
İlk Haskell programınızı yazmak[edit]
Başka bir programlama dilinde program yazmayı öğrendiyseniz, ilk programınız muhtemelen "Hello, world!" olmuştur, madem aynısını yapalım:
Prelude> "Hello, World!"
"Hello, World!"
Haskell sistemi dizgiyi değerlendirdi, ve neticeyi yazdı. Farklı bir yöntem denemek için, doğrudan doğruya standart çıkışa (standard output) yazabiliriz.
Prelude> putStrLn "Hello World"
Hello World
Bir Haskell derleyicisi kullanarak, mesela GHC, bu kodu yürütülür hale derleyebilirsiniz. hello.hs adında yeni bir kaynak dosyası açıp içine bunu yazınız:
main = putStrLn "Hello, World!"
Bu komutla da derleyiniz:
$ ghc -o hello hello.hs
Sonra yürütülür dosyayı çalıştırabilirsiniz (Unix sistemlerinde ./hello, Windows'da hello.exe):
$ ./hello Hello, World!
Hesap makinası Haskell[edit]
Biraz eğlenelim. Haskell'de ilk gerçek programınız, faktöriyel fonksiyonu olacak. Yorumlayıcıya geri dönüp bu fonksiyonu tanımlayalım:
Prelude> let fac n = if n == 0 then 1 else n * fac (n-1)
Bu satır, fac adında yeni bir fonksiyonu tanımlar, bu fonksiyon da bir tüm sayının faktöriyelini hesaplar.
Şimdi de fac 'ı fonksiyonunu herhangi bir argüman (parametre) ile çağıralım:
Prelude> fac 42
1405006117752879898543142606244511569936384000000000
Tebrikler! Program yazmazı kolayladınız. Eğer Hugs kullaniyorsanız, you'll need to load the definition of fac tanımını bir dosyadan yüklemelisiniz. Mesela fac.hs adında bir dosya şu içeriği yazın:
fac n = if n == 0 then 1 else n * fac (n-1)
Sonra da Hugs ile çalıştırmak için (bu GHCi'de aynı şekilde yapılabilir):
Hugs.Base> :load fac.hs
Main> fac 42
1405006117752879898543142606244511569936384000000000
Yürütülür bir dosya üretmek için bu programı da derleyebiliriz, tabii. fac.hs dosyasına şu satırları yazalım (eğlenceyi arttırmak için zarif olan örüntü eşleştirme sözdizimini (pattern matching syntax) de kullanalım):
fac 0 = 1
fac n = n * fac (n-1)
main = print (fac 42)
sonra da bunu derleyip çalıştıralım:
$ ghc -o fac fac.hs $ ./fac 1405006117752879898543142606244511569936384000000000
Harika, değil mi?
Buradan devam etmek için[edit]
Haskell'i iyi anlatan kısa dersler (tutorials) ve kitapların sayısı çoktur (bu kaynaklar ingilizcedir). Tavsiye edebileceğimizlerin bir kaç tanesi:
Kısa Dersler
- Haskell in 10 minutes
- Yet Another Haskell Tutorial (English)
- A Gentle Introduction to Haskell (English, File:GentleFR.pdf)
For a complete list of textbooks, references and tutorials:
Cemiyetimize katılın!
Haskell cemiyetinde başkalar ile temasa geçin, her soruya açığız: