definição e significado de Haskell | sensagent.com


   Publicitade R▼


 » 
alemão búlgaro chinês croata dinamarquês eslovaco esloveno espanhol estoniano farsi finlandês francês grego hebraico hindi holandês húngaro indonésio inglês islandês italiano japonês korean letão língua árabe lituano malgaxe norueguês polonês português romeno russo sérvio sueco tailandês tcheco turco vietnamês
alemão búlgaro chinês croata dinamarquês eslovaco esloveno espanhol estoniano farsi finlandês francês grego hebraico hindi holandês húngaro indonésio inglês islandês italiano japonês korean letão língua árabe lituano malgaxe norueguês polonês português romeno russo sérvio sueco tailandês tcheco turco vietnamês

Definição e significado de Haskell

Definição

definição - Wikipedia

   Publicidade ▼

Locuções

Wikipedia

Haskell

Z Wikipedia

Skocz do: nawigacji, szukaj
Ten artykuł dotyczy języka programowania. Zobacz też: inne znaczenia tego słowa.

Haskell to funkcyjny język programowania nazwany na cześć Haskella Currego. Jego specyficzne cechy to m.in. leniwe wartościowanie, monady, statyczny polimorfizm, klasy typów, definiowalne operatory (również możliwość tworzenia nowych), strażnicy, wbudowana obsługa literate programming.

Pliki Haskella mają rozszerzenie .hs

Choć semantyka leniwej ewaluacji może być w pewnych zastosowaniach niewygodna (dla niedoświadczonych programistów), podobnie jak brak biblioteki porównywalnej z ocamlowską (warto jednak zwrócić uwagę na dość pokaźną liczbę bibliotek zewnętrznych), Haskell nadrabia to wyjątkowo czytelną składnią. W szczególności widać na tym polu kontrast wobec języków takich jak Ocaml czy LISP.

Haskel był początkowo intensywnie rozwijany wokół ośrodka University of Glasgow, popularny kompilator tego języka to Glasgow Haskel Compiler (GHC) kompilujący szybki kod maszynowy porównywalny w szybkości wykonania do kodów z GCC (ok. 1.3 x wolniejszy niż C). Jest to jeden z nowszych (od 1998 roku) dynamicznie rozwijanych języków, leniwy kod jest przydatny przy równoległym wykonywaniu programu w wieloprocesorowych systemach.

Kilka przykładów:

-- Komentarzsilnia 1 = 1silnia n = n*silnia(n-1)silnia' n = product [1..n]fib 0 = 0fib 1 = 1fib n = fib(n-1) + fib(n-2)ack(0,y) = y+1ack(x,0) = ack(x-1,1)ack(x,y) = ack(x-1,ack(x,y-1))-- przykład użycia strażnikówsign x | x >  0  =  1       | x == 0  =  0       | x <  0  = -1myproduct []    = 1myproduct (n:m) = n * myproduct mmysum []    = 0mysum (n:m) = n + mysum mdata TreeOfMath =    Mult TreeOfMath TreeOfMath |    Div  TreeOfMath TreeOfMath |    Add  TreeOfMath TreeOfMath |    Sub  TreeOfMath TreeOfMath |    Leaf Floatcompute (Mult x y) = compute x * compute ycompute (Div x y)  = compute x / compute ycompute (Add x y)  = compute x + compute ycompute (Sub x y)  = compute x - compute ycompute (Leaf x)   = xshowme (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 xqsort [] = []qsort (x:xs) = qsort less ++ x:(qsort more)    where less = [ a | a <- xs, a <  x ]          more = [ a | a <- xs, a >= x ]-- lista liczb pierwszychprimes = map head $ iterate (\(x:xs) -> [ y | y<-xs, y `mod` x /= 0 ]) [2..]-- lista liczb FibonacciegolistFib = 1:1:(zipWith (+) listFib (tail listFib))-- wyrażenia TreeOfMath mają postać: (Sub (Mult (Leaf 5) (Leaf 4)) (Add (Leaf 3) (Leaf 2)))

Linki zewnętrzne

Zobacz publikację na Wikibooks:
Haskell

   Publicidade ▼

 

todas as traduções do Haskell


Conteùdo de sensagent

  • definição
  • sinónimos
  • antónimos
  • enciclopédia

 

7680 visitantes em linha

calculado em 0,016s