Haskell: відмінності між версіями
MrGALL (обговорення | внесок) м Редагування користувача 95.132.221.35 (обговорення) відкинуті до версії користувача MrGALL |
мНемає опису редагування |
||
| Рядок 1: | Рядок 1: | ||
[[Файл:Haskell-Logo-Variation.png|300px|thumb|right]] | [[Файл:Haskell-Logo-Variation.png|300px|thumb|right]] | ||
'''Haskell''' ''([[Солов'їна|солов.]] Хаскелль)'' - [[Функціональне програмування|чиста, функціональна]] [[Мова програмування|мова програмування]]. | '''Haskell''' ''([[Солов'їна|солов.]] Хаскелль)'' - [[Функціональне програмування|чиста, функціональна]] [[Мова програмування|мова програмування]]. В основному мова популярна серед [[нерд]]ів і математиків, бо для розуміння інших принципу роботи інших мов треба знати лише алгебру і геометрію, то в Хаскелл... | ||
| Рядок 7: | Рядок 7: | ||
*Код на Хаскеллі в основному виходить дуже коротким, швидко компілюється та гарно виглядає. | *Код на Хаскеллі в основному виходить дуже коротким, швидко компілюється та гарно виглядає. | ||
*Він [[Функціональне програмування|функціональний]]. [[nuff said]]. Але у деяких випадках, його функціональність - його вада. Особливо у руках любителів [[Матан|матану]]: < | *Він [[Функціональне програмування|функціональний]]. [[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> | |||
| Рядок 23: | Рядок 32: | ||
===Калькулятор=== | ===Калькулятор=== | ||
<pre> | |||
calc :: String -> Float | calc :: String -> Float | ||
calc = head . foldl f [] . words | calc = head . foldl f [] . words | ||
| Рядок 35: | Рядок 44: | ||
f (x:zs) "ABS" = (abs x):zs | f (x:zs) "ABS" = (abs x):zs | ||
f xs y = read y : xs | f xs y = read y : xs | ||
</pre> | |||
===[[Факторіал]]=== | ===[[Факторіал]]=== | ||
< | <pre>fac n = product [1..n]</pre> | ||
== Посилання == | == Посилання == | ||