Haskell

Матеріал з Файна Меморії
Перейти до навігації Перейти до пошуку
Помилка створення мініатюри: Не вдалося зберегти мініатюру до місця призначення

Haskell (солов. Хаскелль) - чиста, функціональна мова програмування. В основному мова популярна серед нердів і математиків, бо для розуміння інших принципу роботи інших мов треба знати лише алгебру і геометрію, то в Хаскелл...


Переваги перед іншими МП[ред.]

Fell the difference, Сюшник.
  • Код на Хаскеллі в основному виходить дуже коротким, швидко компілюється та гарно виглядає.
  • Він функціональний. nuff said. Але у деяких випадках, його функціональність - його вада. Особливо у руках любителів матану:
s f g x = f x (g x)
k x y = x
b f g x = f (g x)
c f g x = f x g
y f = f (y f)
cond p f g x = if p x then f x else g x
fac = y (b (cond ((==) 0) (k 1)) (b (s (*)) (c b pred)))


Реалізації[ред.]

  • Основна - ghc [1].
  • HUGS
  • YHC


Приклади коду[ред.]

Hello, world![ред.]

main = putStrLn "Hello, world!!!"

Калькулятор[ред.]

 calc :: String -> Float
 calc = head . foldl f [] . words
   where 
     f :: [Float] -> String -> [Float]
     f (x:y:zs) "+"    = (y + x):zs
     f (x:y:zs) "-"    = (y - x):zs
     f (x:y:zs) "*"    = (y * x):zs
     f (x:y:zs) "/"    = (y / x):zs
     f (x:y:zs) "FLIP" = y:x:zs
     f (x:zs)   "ABS"  = (abs x):zs
     f xs       y      = read y : xs

Факторіал[ред.]

fac n = product [1..n]

Посилання[ред.]

Примітки[ред.]

  1. Glasgow Haskell Compiler.