Haskell

Матеріал з Драматика
Версія від 19:44, 2 червня 2024, створена Maintenance script (обговорення | внесок) (Imported from text file)
(різн.) ← Попередня версія | Поточна версія (різн.) | Новіша версія → (різн.)
Перейти до навігації Перейти до пошуку

Стаття потребує доповнення!
Ця стаття засмучує наших слоупоків, бо навіть вони розуміють, що її давно вже треба доповнити усілякими корисними картинками та інформацією, або, можливо, видалити якусь недолугу хуйню ідіота і написати натомість щось притомне.


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

Переваги перед іншими мовами програмування

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

Посилання

  1. Glasgow Haskell Compiler.