Haskell (komputillingvo)

pure funkcia programlingvo From Wikipedia, the free encyclopedia

Haskell (komputillingvo)
Remove ads

Haskell (aŭ Esperante Haskelo) estas komputillingvo kreita de Paul Hudak, Simon Peyton Jones, kaj Philip Wadler en 1987. Pli specife, ĝi estas himonimige tipizema, nestrikta, pure funkcia lingvo. La lingvo estas nomita por Haskell Brooks Curry, kies esploro pri matematika logiko estas la fundamento de funkciaj lingvoj. Haskell baziĝas de la lambdokalkulo.

Rapidaj faktoj Paradigmo:, Paradigmo(j): funkcia programado • pure funkcia programado • non-strict programming language ...
Remove ads

Historio

Post la livero de Miranda fare de Research Software Ltd, en 1985, intereso je prokrastaj funkciaj lingvoj kreskis: je 1987, pli ol dek du prokrastaj pure funkciaj programlingvoj ekzistis. El tiuj ĉi, Miranda estis la plej vaste uzata, sed ĝi estis mallibera programaro. Ĉe la konferenco pri Funkciaj Programlingvoj kaj Komputila Arkitekturo (angle «Functional Programming Languages and Computer Arquitecture», FPCA, en 1987) en Portlando (Oregono), kunveno fariĝis, dum kiu partoprenantoj forte konsentis, ke komitato formiĝu por difini malfermitan normon por tiaj lingvoj. La celo de la komitato estus solidigi la ekzistantajn funkciajn lingvojn per kreo de lingvo komuna, kiu servus kiel bazo por estonta esplorado pri desegno de funkciaj lingvoj.

Haskell 1.0 ĝis 1.4

La unua versio de Haskell («Haskell 1.0») difiniĝis en 1990. El klopodo de la komitato rezultis serio de difinoj de la lingvo (1.0, 1.1, 1.2, 1.3, 1.4).

Haskell 98

En la malfrua 1997, la serioj kronis Haskell 98, celita por specifi stabilan, minimuman, porteblan version de la lingvo kaj akompanan norman bibliotekon por instrui, kiel bazo por estontaj etendoj. La komitato eldire bonvenigis kreon de etendoj kaj variaĵoj de Haskell 98 per aldono kaj enmeto de eksperimentaj trajtoj.

En Februaro 1999, la lingvonormo Haskell 98 liveriĝis origine, kiel «The Haskell 98 Report». En Januaro 2003, reviziita versio liveriĝis kiel «Haskell 98 Language and Libraries: The Revised Report». La lingvo daŭras evoluo rapida, per la realigo Glasgow Haskell Compiler (GHC) reprezentanta la nuna defakta normo.[1]

Haskell Prime

En la frua 2006, la procezo por difini sekvanto por la normo Haskell 98, familiare nomata Haskell Prime, komenciĝis.[2] Tiu ĉi estas daŭra alkrementa procezo por revizii la difinon de la lingvo, kiu generas novan revizion inkluzive unufoje je ĉiu jaro. La unua revizio, nomata Haskell 2010, anonciĝis en Novembro 2009 kaj publikiĝis en Julio 2010.

Haskell 2010

Haskell 2010 aldonas la interfacon de fremdaj funkcioj (angle «Foreign Function Interface», FFI) al Haskell, kiu ebligas ekzisto de «bindings» al aliaj programlingvoj, plibonigas kelkajn aferojn pri sintakso (ŝanĝoj en la forma gramatiko) kaj malpermesas t.n. «n-plus-k-patterns», tio signifas, ke difinoj laŭ la formo fakt (n + 1) = (n + 1) * fakt n ne plu permesatas. Ĝi enkondukas la Language-Pragma-Syntax-Extension, kiu ebligas marki Haskell-fonton kiel Haskell 2010 aŭ postuli certajn etendojn de la lingvo Haskell. La nomoj de la etendoj enkondukitaj en Haskell 2010 estas DoAndIfThenElse, HierarchicalModules, EmptyDataDeclarations, FixityResolution, ForeignFunctionInterface, LineCommentSyntax, PatternGuards, RelaxedDependencyAnalysis, LanguagePragma and NoNPlusKPatterns.

Remove ads

Ekzempla kodo

Jen funkcio de faktorialo () en Haskell:

fakt :: Int -> Int
fakt n | n > 0     = n * fakt (n-1)
       | otherwise = 1

Aŭ pli kompakta varianto:

fakt n = product [1..n]

Jen funkcio, kiu donas senfina listo de primoj:

main = print (take 100 primoj)

primoj :: [Integer]
primoj = 2 : filter prima [3,5..]
   where
       prima n = all ((/= 0) . (n `mod`))
                 (takeWhile (\x -> x * x <= n) primoj)
Remove ads

Rilataj lingvoj

  • Clean
  • Agda
  • Idris
  • Epigram
  • Cayenne
  • Ωmega
  • Frege
  • Jaskell
  • Curry
  • Parallel Haskell
    • El Glasgow University
    • El MIT
  • Distributed Haskell (antaŭe Goffin)
  • Eden
  • Eager Haskell
  • Haskell++
  • Mondrian
  • Generic Haskell
  • O'Haskell
  • Timber
  • Disciple
  • Scotch
  • Hume

Referencoj

Eksteraj ligiloj

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads