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

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

- Код на Хаскеллі в основному виходить дуже коротким, швидко компілюється та гарно виглядає.
- Він функціональний. 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]
Посилання
Примітки
- ↑ Glasgow Haskell Compiler.