Haskell Nedir?
Haskell saf işlevsel bir dildir bu özelliğiyle matematiksel bir temele dayanır ve diğer programlama dillerinde onlarca satırda yapacağınız bir hesaplamayı haskellde birkaç adımda yapabilirsiniz. Haskell'in en önemli özelliği lazy evalution yapısıdır, bu yapı eşitliklerin sadece gereken anlarda, gerektiği kadar çözümlenmesine dayanmaktadır. Bu sayede bellek tasarrufu ve dolayısıyla performans sağlanmakta ve yanlış hesaplamaların önüne geçilmektedir. Haskell bir yorumlayıcı vasıtasıyla yorumlanmaktadır, derlenmez. Bu yorumlayıcılarım en ünlüsü Hugs'dur. Ancak JCreator java derleyicisiyle entegre çalışabilmesi sayesinde programlarınızı bu derleyici vasıtasıyla derleyebilirsiniz.
Tembel (lazy): Tembel dillerde eşitlikler, gerekmedikleri sürece çözümlenmezler.
Sadece gerektiğinde çözümlenirler. Bu bakımdan Haskell, kesin belirtimli (strict)
dillerden farklıdır.
Saf (pure): Haskell, yan etkiye (side effect) izin vermediğinden dolayı saftır.
Programlama terimi olarak 'yan etki', evrensel (global) bir değişkeni
etkilemek veya evrensel bir değişkenin etkisinde kalmak anlamında kullanılır.
Sorunlara neden olduğundan dolayı mümkün olduğunca kaçınılması gereken bir durumdur.
Örneğin bir fonksiyon içinde global değişkenler kullanıldığında, fonksiyon parametreleri
aynı değere sahip olmasına rağmen, fonksiyon her seferinde farklı bir sonuç
döndürebileceğinden dolayı, yan etkiye açık hale gelmiş olur.
Evrensel değişkenlere (örneğin ekrana, paralel porta v.b.) erişimi tamamen
engellemek, bir programlama dilini işlevsiz kılacağı için bu tip işlemler,
monads olarak adlandırılan ve programın saflığını bozmayacak korumalı alanlarda
güvenli bir şekilde yapılır.
İşlevsel (functional): Haskell, işlevsel bir programlama dilidir çünkü her bir Haskell
programı, saf bir matematik fonksiyonunun karşılığıdır. Haskell, matematik bir modele
dayanır. Yapılacak işleri komut listesi şeklinde alan C gibi komut dillerinden (imperative)
farklı olarak Haskell'de satır sırasının bir önemi yoktur.
Haskell - HaskellWiki