|
|
| Рядок 1: |
Рядок 1: |
| [[Файл:Haskell-Logo-Variation.png|300px|thumb|right]]
| | dovbojoby sosnule |
| '''Haskell''' ''([[Солов'їна|солов.]] Хаскелль)'' - [[Функціональне програмування|чиста, функціональна]] [[Мова програмування|мова програмування]].
| | http://dramatica.org.ua/ |
| | |
| | |
| == Переваги перед іншими [[Мова програмування|МП]] ==
| |
| [[Файл:800px-Cmp.jpg|300px|thumb|right|Fell the difference, [[Сі|Сюшник]].]]
| |
| | |
| *Код на Хаскеллі в основному виходить дуже коротким, швидко компілюється та гарно виглядає.
| |
| *Він [[Функціональне програмування|функціональний]]. [[nuff said]]. Але у деяких випадках, його функціональність - його вада. Особливо у руках любителів [[Матан|матану]]: <br/><code>s f g x = f x (g x)<br />k x y = x<br />b f g x = f (g x)<br />c f g x = f x g<br />y f = f (y f)<br />cond p f g x = if p x then f x else g x<br />fac = y (b (cond ((==) 0) (k 1)) (b (s (*)) (c b pred)))</code>
| |
| | |
| | |
| == Реалізації ==
| |
| | |
| *Основна - ghc <ref>Glasgow Haskell Compiler.</ref>.
| |
| *HUGS
| |
| *YHC
| |
| | |
| | |
| == Приклади коду ==
| |
| | |
| ===Hello, world!===
| |
| <code>main = putStrLn "Hello, world!!!"</code>
| |
| | |
| ===Калькулятор===
| |
| | |
| 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
| |
| | |
| ===[[Факторіал]]===
| |
| <code>fac n = product [1..n]</code>
| |
| | |
| == Посилання ==
| |
| *[http://www.willamette.edu/~fruehr/haskell/evolution.html The Evolution of a Haskell Programmer]
| |
| *[http://www.haskell.ru/ Опис мови(моск.)]
| |
| | |
| == Примітки ==
| |
| {{reflist}}
| |
| | |
| [[Категорія:Мови програмування]]
| |