Haskell – Wiki

Haskell

Z Wikipedii, wolnej encyklopedii
Skocz do: nawigacji , szukaj
Ujednoznacznienie Ten artykuł dotyczy języka programowania. Zobacz też: inne znaczenia tego słowa .
Logo Haskella

Haskell – czysto funkcyjny język programowania nazwany na cześć Haskella Curry'ego .

Spis treści

[ edytuj ] Cechy

Jego specyficzne cechy to m.in.:

[ edytuj ] Rozszerzenia

Pliki Haskella mają rozszerzenie

[ edytuj ] Kompilator

Haskell był początkowo intensywnie rozwijany wokół ośrodka University of Glasgow , popularny kompilator tego języka to Glasgow Haskell Compiler (GHC) kompilujący szybki kod maszynowy porównywalny w szybkości wykonania do kodów z GCC (ok. 1, 3 razy wolniejszy niż C ).

[ edytuj ] Przykłady

-- Komentarz
 
silnia 1 = 1
silnia n = n*silnia(n-1)
 
silnia' n = product [1..n]
 
fib 0 = 0
fib 1 = 1
fib n = fib(n-1) + fib(n-2)
 
ack(0, y) = y+1
ack(x, 0) = ack(x-1, 1)
ack(x, y) = ack(x-1, ack(x, y-1))
 
-- przykład użycia strażników
sign x | x >  0  =  1
       | x == 0  =  0
       | x <  0  = -1
 
myproduct []    = 1
myproduct (n:m) = n * myproduct m
 
mysum []    = 0
mysum (n:m) = n + mysum m
 
data TreeOfMath =
    Mult TreeOfMath TreeOfMath |
    Div  TreeOfMath TreeOfMath |
    Add  TreeOfMath TreeOfMath |
    Sub  TreeOfMath TreeOfMath |
    Leaf Float
 
compute (Mult x y) = compute x * compute y
compute (Div x y)  = compute x / compute y
compute (Add x y)  = compute x + compute y
compute (Sub x y)  = compute x - compute y
compute (Leaf x)   = x
 
showme (Mult x y) = "(" ++ (showme x) ++ "*" ++ (showme y) ++ ")"
showme (Div x y)  = "(" ++ (showme x) ++ "/" ++ (showme y) ++ ")"
showme (Add x y)  = "(" ++ (showme x) ++ "+" ++ (showme y) ++ ")"
showme (Sub x y)  = "(" ++ (showme x) ++ "-" ++ (showme y) ++ ")"
showme (Leaf x)   = show x
 
qsort [] = []
qsort (x:xs) = qsort less ++ x:(qsort more)
    where less = [ a | a <- xs,  a <  x ]
          more = [ a | a <- xs,  a >= x ]
 
-- lista liczb pierwszych
primes = map head $ iterate (\(x:xs) -> [ y | y<-xs,  y `mod` x /= 0 ]) [2..]
 
-- lista liczb Fibonacciego
listFib = 1:1:(zipWith (+) listFib (tail listFib))
 
-- wyrażenia TreeOfMath mają postać: (Sub (Mult (Leaf 5) (Leaf 4)) (Add (Leaf 3) (Leaf 2)))

[ edytuj ] Linki zewnętrzne

Wikibooks-logo.svg
Zobacz publikację na Wikibooks :
Haskell

PiS nie będzie uczestniczyć w programach z Niesiołowskim i Palikotem
Przedstawiciele Prawa i Sprawiedliwości nie będą uczestniczyć w programach radiowych i telewizyjnych z udziałem Janusza Palikota i Stefana Niesiołowskiego (PO). Taką uchwałę podjął komitet polityczny PiS.



Gronkiewicz-Waltz do Rostowskiego: Niech pan nas tak nie ciśnie
Panie ministrze finansów, błagam, niech pan nas tak nie ciśnie - tymi słowami w imieniu samorządowców - zaapelowała do Jacka Rostowskiego wiceszefowa PO, prezydent Warszawy Hanna Gronkiewicz-Waltz w piątek na radzie Krajowej PO.



Tusk przemówił na Radzie Krajowej Platformy
Gdy zwracałem się z apelem do Stefana Niesiołowskiego o przeproszenie napastującej go dziennikarki, to mówiłem i dziś mówię: zdolność wybaczania, trzymanie nerwów na wodzy to jest m.in. źródło siły PO - mówił na Radzie Krajowej partii premier Donald Tusk.



Prokuratorzy chcą spotkać się z autorem tezy o wybuchu w Smoleńsku
Profesor z USA Wiesław Binienda, autor prywatnej ekspertyzy ws. katastrofy smoleńskiej, został poproszony o spotkanie z prokuratorami wojskowymi badającymi wypadek Tu-154M z 10 kwietnia 2010 r. Nie ma na razie jego odpowiedzi.



"FAZ": "Koko Euro Spoko" to bardzo specjalny hymn
Zdjęcie polskiego zespołu Jarzębina, którego przebój "Koko Euro Spoko" został polskim hymnem na Euro-2012, trafiło w piątek na pierwsza stronę niemieckiego dziennika "Frankfurter Allgemeine Zeitung". Według gazety utwór ten jest jednak "bardzo specjalny".



Home Page , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,