Haskell: відмінності між версіями

Матеріал з Енциклопедія Драматика
Перейти до навігації Перейти до пошуку
Немає опису редагування
(Замінено вміст на «вфяфсвіфсяч»)
Мітка: Замінено
Рядок 1: Рядок 1:
{{Stub}}
вфяфсвіфсяч
'''Haskell''' ''(Хаскель)'' — чиста функціональна мова програмування. В основному мова популярна серед нердів і математиків, бо для розуміння принципу роботи інших мов треба знати лише алгебру і геометрію, то в Хаскелі...
 
== Переваги перед іншими мовами програмування ==
 
[[Файл:HaskellCmp.jpg|300px|thumb|right|Філ зе діференс, [[C|Сюшник]].]]
 
*Код на Хаскеллі в основному виходить дуже коротким, швидко компілюється та гарно виглядає.
*Він функціональний, nuff said. Але у деяких випадках, його функціональність — його вада. Особливо у руках любителів матану:
<syntaxhighlight lang="Haskell">
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)))
</syntaxhighlight>
== Реалізації ==
 
*Основна - ghc <ref>Glasgow Haskell Compiler.</ref>.
*HUGS
*YHC
 
== Приклади коду ==
 
===Hello, world!===
<syntaxhighlight lang="Haskell"> main = putStrLn "Hello, world!!!" </syntaxhighlight>
 
===Калькулятор===
<syntaxhighlight lang="Haskell">
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
</syntaxhighlight>
===Факторіал===
<syntaxhighlight lang="Haskell"> fac n = product [1..n] </syntaxhighlight>
 
== Посилання ==
*[http://www.willamette.edu/~fruehr/haskell/evolution.html The Evolution of a Haskell Programmer]
*[http://www.haskell.ru/ Опис мови (моск.)]
 
 
{{Айті}}

Версія за 16:29, 23 жовтня 2022

вфяфсвіфсяч