Movatterモバイル変換


[0]ホーム

URL:


Przejdź do zawartości
Wikipediawolna encyklopedia
Szukaj

Haskell

Z Wikipedii, wolnej encyklopedii
Ten artykuł dotyczy języka programowania. Zobacz też:inne znaczenia tego słowa.
Haskell
Logo języka Haskell
Logo języka
Pojawienie się

1990[1]

Paradygmat

funkcyjny

Typowanie

statyczne,silne,inferencja typów

Implementacje

Glasgow Haskell Compiler

Aktualnawersja stabilna

Haskell 9.12.1[2]

Twórca

Lennart Augustsson, Dave Barton, Brian Boutel, Warren Burton, Joseph Fasel, Kevin Hammond, Ralf Hinze, Paul Hudak, John Hughes, Thomas Johnsson, Mark Jones, Simon Peyton Jones, John Launchbury, Erik Meijer, John Peterson, Alastair Reid, Colin Runciman, Philip Wadler

Platforma sprzętowa

wieloplatformowy

Strona internetowa

Haskell – czystofunkcyjnyjęzyk programowania nazwany na cześć amerykańskiego matematyka,Haskella Curry’ego.

Cechy

[edytuj |edytuj kod]

Jego specyficzne cechy to m.in.:

Rozszerzenia

[edytuj |edytuj kod]

Pliki Haskella mająrozszerzenie

Kompilator

[edytuj |edytuj kod]

Haskell był początkowo intensywnie rozwijany wokół ośrodkaUniversity of Glasgow, popularnykompilator tego języka toGlasgow Haskell Compiler (GHC) kompilujący szybkikod maszynowy porównywalny w szybkości wykonania do kodów zGCC(ok. 1,3 razy wolniejszy niżC)[potrzebny przypis].

Przykłady

[edytuj |edytuj kod]
-- Komentarz w jednej linijce{- Komentarze nawiele linijek  {- można zagnieżdżać -}-}-- Przykłady funkcji z dopasowywaniem wzorcasilnia0=1silnian=n*silnia(n-1)silnian=product[1..n]fib0=0fib1=1fibn=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ówsignx|x>0=1|x==0=0|x<0=-1myproduct[]=1myproduct(n:m)=n*myproductmmysum[]=0mysum(n:m)=n+mysumm-- wyrażenia TreeOfMath mają postać: (Sub (Mult (Leaf 5) (Leaf 4)) (Add (Leaf 3) (Leaf 2)))dataTreeOfMath=MultTreeOfMathTreeOfMath|DivTreeOfMathTreeOfMath|AddTreeOfMathTreeOfMath|SubTreeOfMathTreeOfMath|LeafFloatcompute(Multxy)=computex*computeycompute(Divxy)=computex/computeycompute(Addxy)=computex+computeycompute(Subxy)=computex-computeycompute(Leafx)=xshowme(Multxy)="("++showmex++"*"++showmey++")"showme(Divxy)="("++showmex++"/"++showmey++")"showme(Addxy)="("++showmex++"+"++showmey++")"showme(Subxy)="("++showmex++"-"++showmey++")"showme(Leafx)=showxqsort[]=[]qsort(x:xs)=qsortless++x:(qsortmore)whereless=[a|a<-xs,a<x]more=[a|a<-xs,a>=x]-- lista liczb pierwszychprimes=maphead$iterate(\(x:xs)->[y|y<-xs,y'mod'x/=0])[2..]-- lista liczb FibonacciegolistFib=1:1:(zipWith(+)listFib(taillistFib))

Przypisy

[edytuj |edytuj kod]
  1. Paul Hudak, John Hughes, Simon Peyton Jones, Philip Wadler: A History of Haskell: Being Lazy with Class. 2007.ISBN 978-1-59593-766-7.
  2. Download — The Glasgow Haskell Compiler [online], www.haskell.org [dostęp 2025-01-24] .

Linki zewnętrzne

[edytuj |edytuj kod]
Zobacz publikację
Haskell w Wikibooks
Języki programowania
1GL
2GL/
Język drugiej generacji/
Asembler
3GL /
Język trzeciej generacji
wieloparadygmatowe
proceduralne
istrukturalne
historyczne
inne
obiektowe
funkcyjne
edukacyjne
4GL/
Język czwartej generacji/
Język dziedzinowy
Języki zapytań do baz danych
Generatory raportów / stron
Przetwarzanie danych, analiza i raportowanie
5GL/Logiczne
Ezoteryczne
Inne
Kontrola autorytatywna (czysto funkcyjny język programowania):
Źródło: „https://pl.wikipedia.org/w/index.php?title=Haskell&oldid=75871394
Kategoria:
Ukryte kategorie:

[8]ページ先頭

©2009-2026 Movatter.jp