Haskell (proqramlaşdırma dili)
Haskell — saf funksional proqramlaşdırma dilidir. Haskell proqramlaşdırma dilini digər bu qəbil dillərdən ayıran ən önəmli xüsusiyyəti, yəqin ki tənbəl olmağıdır. Proqramlaşdırma dilində tənbəl deyilərkən, dəyişənin lazım olduqda çağırılmağı nəzərdə tutulur. Amerikan məntiqçisi və riyaziyyatçısı Haskel Körlinin (Haskell Curly)şərəfinə belə adlandırılmışdır. Haskell dilinin ən mühüm elementi funksiyalardır. Hətta funksiyalar üçün, Haskell kainatının birinci sinif vətəndaşları da deyilir. Haskell dili, 1990-cı ildə yaradılmışdır. Dilin ərsəyə gəlməyində Saymon Peyton Conz (Simon Peyton Jones, Kembric universiteti), Lennart Avququstson (Lennart Augustsson, Cayenne proqramlaşdırma dilinin yaradıcısı), Pol Udak (Paul Hudak, Yeyl Universiteti, kompüter elmləri professoru) Con Hyuz (John Hughes, Çalmerş Universiteti), Erik Meyer (Erik Meijer, Utrext Universiteti, Mikrosoft proqram təminatları arxitektoru), Filip Vadler (Philip Wadler, Edinburq Universiteti) vəs. yaxından iştirak etmişdir. Proqramın ən son versiyası 2010-cu ilin, İyulunda buraxılıb. module Main where main :: IO () main = putStrLn "Linedinnas, egamican!" Aşağıdakı kodlara diqqət yetirin. Digər başqa bir proqramlaşdırma dilində proqramın başlanğıc hissəsində dəyişənlər əvvəlcədən göstərilməlidir. rekursiv funksiya ilə faktorial hesabı. faktorial :: Integer -> Integer ---- istəyə bağlı-------- faktorial 0 = 1 faktorial n = n * faktorial (n - 1) ------------ faktorial n = product[1..n] Məs: bu C-də təxminən int main() { int f, n; ... } Pascal-da isə program Proqram; var fakt, n : integer; ... şəklində olmalı idi. Funksiyaların ümumi şəkildə deklarasiyası və tanınmağı. kvadrat :: int->int kvadrat n = n*n Haskell dili üçün ən çox istifadə olunan kompilyatorlar, Helium və Glasgow kompilyatorlarıdır. Haskell dilində yazdığınız proqramları .hs və .lhs kimi saxlaya bilərsiniz. Heliumda bu proqramları açmaq üçün, Prelude > təqinin qarşısınıa proqramadi.hs yazmaq lazımdır. Prelude > proqramadi.hs -- burda proqramın nəticəsi göstəriləcək ---