м Редагування користувача 95.132.221.35 (обговорення) відкинуті до версії користувача MrGALL
Surikoff (обговорення | внесок)
мНемає опису редагування
 
Рядок 1: Рядок 1:
[[Файл:Haskell-Logo-Variation.png|300px|thumb|right]]
[[Файл:Haskell-Logo-Variation.png|300px|thumb|right]]
'''Haskell''' ''([[Солов'їна|солов.]] Хаскелль)'' - [[Функціональне програмування|чиста, функціональна]] [[Мова програмування|мова програмування]].
'''Haskell''' ''([[Солов'їна|солов.]] Хаскелль)'' - [[Функціональне програмування|чиста, функціональна]] [[Мова програмування|мова програмування]]. В основному мова популярна серед [[нерд]]ів і математиків, бо для розуміння інших принципу роботи інших мов треба знати лише алгебру і геометрію, то в Хаскелл...




Рядок 7: Рядок 7:


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


===[[Факторіал]]===
===[[Факторіал]]===
<code>fac n = product [1..n]</code>
<pre>fac n = product [1..n]</pre>


== Посилання ==
== Посилання ==