dbo:abstract
|
- هاسكل هي لغة برمجة مطابقة للمعايير، للأغراض العامة، وهي لغة وظيفية إلى حد كبير، دون دلالات ألفاظ ملزمة وبكتابة ثابتة وقوية. وقد سُميت بـ هاسكل علي اسم عالم المنطق «هاسكل كوري». وفي اللغة هاسكل، «تمثل الوظيفة مواطن من الدرجة الأولى» من لغة البرمجة. ولكونها لغة برمجة وظيفية فإن بنية التحكم الرئيسية هي الوظيفة. وترجع أصول اللغة إلى ملاحظات هاسكل كوري وأتباعه من المفكرين، بأن «الإثبات هو برنامج؛ والمعادلة التي يثبتها هي نوع للبرنامج». (ar)
- Haskell je standardizovaný funkcionální programovací jazyk používající líné vyhodnocování, pojmenovaný na počest logika Haskella Curryho. Jazyk se rychle vyvíjí, především díky svým implementacím Hugs a GHC. Haskell je jazyk dodržující referenční transparentnost. To, zjednodušeně řečeno, znamená, že tentýž (pod)výraz má na jakémkoliv místě v programu stejnou hodnotu. Mezi další vlastnosti tohoto jazyka patří přísné typování proměnných, které programátorovi může usnadnit odhalování chyb v programu. Haskell plně podporuje práci se soubory i standardními vstupy a výstupy. (cs)
- Haskell és un llenguatge de programació funcional estandarditzat de i avaluació tardana de les expressions (ang: lazy evaluation) en el moment que se'n demana el valor i pren el nom del matemàtic Haskell Curry. Es diu que és un llenguatge funcional pur. El cert és que admet però permet encapsular-ne els canvis (context ST), o bé circumscriure'n els al nivell superficial (context IO). Haskell basa el polimorfisme en el requeriment d'implementació d'interfícies pels tipus dels paràmetres. Les interfícies amb un paràmetre de tipus t defineixen una partició de l'espai dels tipus en classes segons si les implementen o no, i per això s'anomenen classes de tipus. -- classe de tipus (la interfície)class Eq t where (==) :: t -> t -> Bool -- iguals (/=) :: t -> t -> Bool -- desiguals -- implementació per defecte x == y = not (x /= y) x /= y = not (x == y) -- caldrà especificar només una de les operacions en definir la implementaciódata Bool = False | True -- definició del tipus Bool-- instància (la implementació) de la classe Eq per al tipus Boolinstance Eq Bool where (==) False False = True (==) True True = True (==) _ _ = False-- definició del tipus (Llista a) = Nil | Cons a (Llista a)-- els símbols '[' i ']' designen una llistadata [a] = [] -- el constructor Nil es denota amb "[]" | a : [a] -- el constructor Cons es denota amb ':' en posició infix-- * per sintaxi, si un símbol comença per ':', va infix-- * tot identificador de funció es pot posar en infix si s'envolta de cometes revesses-- exemple d'ús: "Eq t =>" es llegeix: per aquells tipus t tals que (Eq t)ésMembre :: Eq t => t -> [t] -> Bool -- ésMembre x [] = False ésMembre x (cap : cua) = x == cap || x `ésMembre` cua -- notació infix amb cometes revesses
* les classes de tipus són com un mòdul genèric, amb el tipus com a paràmetre o índex, que defineix la signatura de les operacions on intervé el tipus indexat. Derivació automàtica d'instàncies (implementacions d'interfícies): També podem demanar al compilador que, per a classes de tipus bàsiques, derivi una instància partint de la representació interna del tipus (clàusula deriving en la definició de tipus estructurals (clàusula data). data Color = Verd | Blau | Lila deriving (Eq, Show) -- el compilador deriva instàncies de les classes esmentades, obtenint la posició i el nom dels valors Els literals no tenen tipus associat sinó que poden pertànyer a aquells tipus que implementin una determinada classe: $ ghci -- a l'intèrpretPrelude> :t 11 :: Num a => a -- 1 pot assignar-se a vars. d'aquells tipus que implementin la classe Num (que correspon a l'estructura algebraica d'anell)Prelude> :t 1.51.5 :: Fractional a => a -- 1.5 pot assignar-se a vars. d'aquells tipus que implementin la classe Fractional (que correspon a l'estructura algebraica de cos)-- la clàusula "default" permet l'assignació de tipus tradicional als literals, esmentant una seqüència de tipus a provardefault (Int, Double) La fa possible incorporar-los a diferents estructures: {-# LANGUAGE OverloadedStrings, OverloadedLists #-}import Data.Semigroup((<>))import Data.Text (Text) -- text com a vectors de UTF-16import Data.Set (Set)import Data.Map (Map)tiraDeText = ("abc" :: Text) <> "def" llista = ([1..3] :: [Int]) <> [4..6]cjt = ([1..3] :: Set Int) <> [4..6]dicc = ([(1,"a"), (2, "b")] :: Map Int String) <> [(3,"c")] Tipus derivats: Corresponent a la derivació de classes de la P.O.O. Haskell possibilita la derivació de tipus amb la declaració , heretant del tipus base les implementacions d'aquelles classes de tipus que esmentem a la clàusula deriving. Caldrà l'extensió de llenguatge GeneralizedNewtypeDeriving. Les implementacions no tenen nom. Un tipus no pot tenir diverses implementacions d'una classe de tipus, per ex. diverses ordenacions o diversos monoides per un mateix tipus. Caldrà crear-ne un tipus derivat amb newtype per cadascuna de les implementacions. {-# LANGUAGE GeneralizedNewtypeDeriving #-} -- amplia les instàncies heretables del Haskell98-- tipus derivat per implementar un Monoide per a la suma, parametritzat pel tipus basenewtype Sum a = Sum { getSum :: a } deriving (Eq, Ord, Read, Show, Bounded, Generic, Generic1, Num) -- classes de les instàncies a heretar -- el constructor obté, del tipus base, el tipus derivat -- l'accessor obté, del tipus derivat, el tipus baseinstance Num a => Monoid (Sum a) where -- per aquells `a` que implementin Num (un anell algebraic) mempty = Sum 0 -- element neutre del Monoide Sum x `mappend` Sum y = Sum (x + y) -- operació associativa Les col·leccions heterogènies d'altres llenguatges, aquí es tipifiquen per les operacions requerides, mitjançant tipus existencials (aquells tipus quins components implementin les classes de tipus requerides per al seu tractament). {-# LANGUAGE ExistentialQuantification #-}llistaHomo :: [Int]llistaHomo = [1, 3, 4] -- llista homogènia-- tipus "existencial": amb un component de tipus variable que compleixi una restricciódata ObjPresentable = forall a. (Show a) => Obj a -- per aquells tipus 'a' tals que "(Show a)"presentaObj :: ObjPresentable -> StringpresentaObj (Obj x) = "Obj " ++ show x -- llista d'elements amb components heterogenis, -- als quals podrem aplicar les operacions de les classes especificades a la restricció llistaHetero :: [ObjPresentable]llistaHetero = [Obj 1, Obj "abc"] El control de les operacions sobre els elements dels contenidors es pot fer de diverses maneres:
* Mapeig: Si el contenidor implementa un Functor podrem estalviar múltiples recorreguts dels contenidors en aplicar diversos morfismes als elements, doncs per les lleis del Functor l'aplicació de la composició serà equivalent a la composició de les aplicacions individuals de cadascun dels morfismes. Els conjunts no són FunctorSi no hi ha efectes laterals
* Els o plegaments són operacions que redueixen una col·lecció de valors a un de sol, altrament dit, una gramàtica A* -> A, a la classe Data.Foldable.
* Inversament, els son operacions de desplegament que partint d'un valor anomenat llavor genera una col·lecció A -> A*. No tenen una classe específica. Es descriuen als mòduls de cada col·lecció.
* Un és l'aplicació consecutiva d'un anamorfisme seguida d'un catamorfisme. Per exemple el càlcul del factorial desplega una seqüència de crides que és plegada en un valor final.
* Un és l'aplicació consecutiva d'un catamorfisme seguida d'un anamorfisme.
* Un és l'extensió del concepte de catamorfisme. Modela la recursió sobre un tipus de dades inductiu.
* Un és l'extensió del concepte d'anamorfisme, modelant la corecursió sobre un tipus coinductiu.Quan hi ha efectes laterals cal controlar la seqüència de les operacionsla classe Traversable facilita l'avaluació seqüencial dels elements d'un contenidor d'accions o bé del mapeig dels elements amb una funció d'efectes.L'avaluació d'accions es pot fer de tres maneres possibles
* Per combinació de resultats (les accions es podrien paral·lelitzar):
* Els Functors aplicatius permeten combinar els resultats d'un seguit d'accions sense restringir-ne la temporalitat i componen les accions aplicant un resultat combinador de la primera, al resultat de l'acció següent. L'obtenció d'un resultat combinador es pot fer mitjançant l'aplicació d'un combinador de més d'un paràmetre, amb `fmap` a la primera acció, o també, elevant el combinador com a valor amb `pure` al tipus de l'efecte.
* Per encadenament de resultats (serialització temporal):
* Les Mònades componen les accions per encadenament del resultat doncs la segona acció pren forma de funció (amb efectes laterals) sobre el resultat de la precedent Hi ha una sintaxi específica (els blocs do) per descriure la composició de manera imperativa.
* Les Fletxes generalitzen les funcions d'efectes laterals de les mònades, i componen les accions com un encadenament de resultats d'efectes funció d'una entrada que aplicarem a un valor inicial. Hi ha una sintaxi específica (els blocs proc) per descriure'n la composició.Mònades amb efectes laterals funcionals
* La mònada Reader possibilita l'encapsulament d'una funció d'un entorn que podem consultar (ask) i executar localment (amb local) una acció subordinada passant-li l'entorn modificat. L'entorn l'haurem de proporcionar inicialment en executar l'acció.
* La mònada Writer possibilita l'encapsulament d'una sortida incrementable com a Monoide que es pot consultar (listen), actualitzar (tell) i incrementar (censor).
* La mònada State possibilita l'encapsulament d'un estat que podrem consultar (get) i actualitzar (put).
* Els transformadors de mònades possibiliten l'encapsulament de la funcionalitat de diverses mònades.Programació genèrica La , parametritzada per tipus, es concreta o bé
* afegint paràmetres de tipus a les classes de tipus,
* o bé, cas de tipus dependents, definint-los com a tipus associats a la classe
* o bé mitjançant (especificació a nivell global d'un tipus dependent quan es vol comú a diferents classes, per exemple el tipus de l'Element per a diferents classes de contenidors). Haskell destaca en la facilitat per al paral·lelisme, per aprofitar la potència dels processadors multicor. A finals dels anys 1980 es va constituir un comitè amb l'objectiu de recollir en un llenguatge les característiques dels múltiples llenguatges funcionals de l'època, , ML i altres. La primera versió va sortir el 1990. La versió més estesa actualment és la que correspon a l'informe Haskell 98. Tanmateix el compilador GHC incorpora l'estàndard Haskell2010 per defecte a partir de la versió 7.0 A principi de 2006 va començar el procés per definir-ne una nova revisió amb el nom de Haskell' ("Haskell prima", ang:"Haskell prime"). Diversos compiladors incorporen extensions del llenguatge que per a fer-les servir caldrà precedir el codi font amb la {-# LANGUAGE extensió1, extensió2, ... #-} o bé el senyal corresp. de compilació ( -Xextensió per al GHC). El wiki de "Haskell Prima" esmenta per cada extensió els compiladors que la implementen. Haskell 2010: Actualment ha finalitzat el procés de discussió de les incorporacions a la nova versió de l'estàndard, així com un nou procés d'evolució amb revisions (bi-)anuals del llenguatge. Propostes d'evolució del llenguatge aquí. Crítiques:
* Haskell té un desavantatge important en la dificultat de depuració, que obliga a un esforç especial en la prevenció de fallades:
* El model d'execució de Haskell fa que no hi hagi traça de pila de crides. Però se n'ha desenvolupat una de simulada per quan es compila per l'ajustatge (profiling). Per aquest cas, cal disposar de compilacions per l'ajustatge de totes les biblioteques relligades.
* Les petades per crides a error de les funcions parcials (proveu head []) donen, en compilació de producció, informació molt escassa: ni situació de l'error (a partir de GHC 8.0 error ja dona la posició, excepte al paquet base on s'ha mantingut la versió antiga, reanomenada errorWithoutStackTrace), ni la de la crida que incompleix la precondició. Per això es recomana no utilitzar-les en funcions parcials i convertir-les en totals amb resultat opcional caçant el cas no previst en l'anàlisi del retorn. Recentment des de GHC 7.10.2 hi ha la possibilitat d'obtenir el punt de crida d'origen mitjançant paràmetres implícits especials (Vegeu ). Alternativa més segura: evitar les funcions parcials (La biblioteca Safe ofereix alternatives a les funcions parcials predefinides del Prelude; el mòdul Data.List.NonEmpty ofereix llistes no buides com a tipus NonEmpty per aplicar de manera segura les funcions que petarien sobre llistes buides, per ex.: head).
* Els errors en funcions parcials de col·leccions no imprimeixen els valors causants, perquè la textualització dels elements (Show elem) no s'exigeix.
* L'ús de traces per depurar es revela un maldecap per la irregularitat en l'ordre d'impressió que segueix l'ordre d'execució i no el d'especificació, indeterminat (per tant aleatori) en codi funcional pur, subjecte a l'avaluació tardana en traces en expressions let del codi monàdic (seqüencial).
* El en les crides recursives (aval. tardana per defecte) pot fer petar la pila (pila d'avaluacions pendents) mentre no s'arriba al cas simple no-recursiu, si no s'avaluen de manera estricta els paràmetres acumuladors de manera completa, en profunditat ( i ).
* S'ha criticat que no hi hagi un sistema d'extensió de registres i/o especialització. A l'intèrpret Hugs se'n va desenvolupar un anomenat TRex (exemple) que GHC no ha incorporat.
* En realitat es pot aconseguir facilitat en l'especialització de comportament, desacoblant la funcionalitat de l'estructura amb classes de propietats (getters/setters) com es descriu a l'.
* La implementació recent de polimorfisme de registres amb camps específics permet especificar els accessors com a requeriment de context, mitjançant la classe HasField (GHC 8.2), estalviant definir classes getters per aconseguir el polimorfisme (exemple verificat a ).
* Les , anomenades lents, permeten l'actualització funcional d'estructures complexes en els seus components com un tot, reduint la necessitat de dividir la funció en els mòduls corresponents als components afectats com faríem a la POO. Problemàtiques: Vegeu secció . (ca)
- Haskell ist eine rein funktionale Programmiersprache, benannt nach dem US-amerikanischen Mathematiker Haskell Brooks Curry, dessen Arbeiten zur mathematischen Logik eine Grundlage funktionaler Programmiersprachen bilden. Haskell basiert auf dem Lambda-Kalkül, weshalb auch der griechische Buchstabe Lambda als Logo verwendet wird. Die wichtigste Implementierung ist der Glasgow Haskell Compiler (GHC). (de)
- Η Haskell είναι μια πρότυπη αμιγώς συναρτησιακή γλώσσα προγραμματισμού γενικής χρήσης με μη-αυστηρή σημασιολογία και ισχυρούς τύπους. Πήρε το όνομά της από τον επιστήμονα της λογικής Haskell Curry. Στη Haskell, "μια συνάρτηση είναι μέλος πρώτης τάξης" της γλώσσας προγραμματισμού. Ως συναρτησιακή γλώσσα προγραμματισμού, χρησιμοποιεί σαν κύρια δομή ελέγχου τη συνάρτηση. Η γλώσσα βασίζεται στις παρατηρήσεις του Haskell Curry (1934, 1958) και των πνευματικών του απογόνων, ότι "μια απόδειξη είναι ένα πρόγραμμα και ο μαθηματικός τύπος που αποδεικνύει είναι ο τύπος του προγράμματος". (el)
- Haskell (aŭ Esperante Haskelo) estas komputillingvo kreita de , , kaj en 1987. Pli specife, ĝi estas , nestrikta, pure funkcia lingvo. La lingvo estas nomita por , kies esploro pri matematika logiko estas la fundamento de funkciaj lingvoj. Haskell baziĝas de la lambdokalkulo. (eo)
- Haskell (/ˈhæskəl/) is a general-purpose, statically-typed, purely functional programming language with type inference and lazy evaluation. Designed for teaching, research and industrial applications, Haskell has pioneered a number of programming language features such as type classes, which enable type-safe operator overloading, and monadic IO. Haskell's main implementation is the Glasgow Haskell Compiler (GHC). It is named after logician Haskell Curry. Haskell's semantics are historically based on those of the Miranda programming language, which served to focus the efforts of the initial Haskell working group. The last formal specification of the language was made in July 2010, while the development of GHC continues to expand Haskell via language extensions. Haskell is used in academia and industry. As of May 2021, Haskell was the 28th most popular programming language by Google searches for tutorials, and made up less than 1% of active users on the GitHub source code repository. (en)
- Haskell normalizatuta dagoen programazio lengoaia funtzionala da, semantika ulerkorra eta idazketa zorrotza duena. Haskell Curry logikariaren omenez du izena. Kaleratutako azken estandarra Haskell 2010 da, eta 2016ko maiatzetik, hurrengo bertsioa garatzen dabiltza, Haskell 2020 izena hartuko duena. Haskell lengoaiaren semantikan oinarritzen da, baina ez bere sintaxian. Akademia munduan eta industrian erabili ohi da Haskell lengoaia. (eu)
- Haskell (pronunciado /hæskəl/) es un lenguaje de programación estandarizado multi-propósito, funcionalmente puro, con evaluación no estricta y memorizada, y fuerte tipificación estática. Su nombre se debe al lógico estadounidense Haskell Curry, debido a su aporte al cálculo lambda, el cual tiene gran influencia en el lenguaje. En Haskell, "una función es un ciudadano de primera clase" del lenguaje de programación. Como lenguaje de programación funcional, el constructor de controles primario es la función. El lenguaje tiene sus orígenes en las observaciones de Haskell Curry y sus descendientes intelectuales. En los años 1980 se constituyó un comité cuyo objetivo era crear un lenguaje funcional que reuniera las características de los múltiples lenguajes funcionales de la época, el más notable Miranda, y resolviera la confusión creada por la proliferación de los mismos. El lenguaje evoluciona rápidamente y (ver más abajo) como los representantes actuales del estándar de facto. El último estándar oficial es: Haskell 2010, cuyas diferencias respecto al anterior estándar Haskell 98 son: Nuevas características del lenguaje:
* Interfaz de funciones foráneas (FFI), que permite usar código C en un programa Haskell y código Haskell en un programa C. Un ejemplo explicativo se puede encontrar aquí
* Nombres jerárquicos para los módulos, por ejemplo Data.Bool.
* Guardianes con patrones. Características eliminadas del lenguaje:
* Sintaxis de patrones (n+k). Con lo cual, la siguiente definición de la función factorial no es válida en Haskell 2010 y posteriores: fact (n+1) = (n+1) * fact n. Las características más interesantes de Haskell incluyen el soporte para tipos de datos y funciones recursivas, listas, tuplas, guardas y . La combinación de las mismas pueden resultar en algunas funciones casi triviales cuya versión en lenguajes imperativos pueden llegar a resultar extremadamente tediosas de programar. Haskell es, desde 2002, uno de los lenguajes funcionales sobre los que más se ha investigado. Se han desarrollado muchas variantes:
* Versiones paralelas del MIT y Glasgow, ambas denominadas Parallel Haskell.
* Más versiones paralelas y distribuidas de Haskell llamadas Distributed Haskell (anteriormente Goffin) y Eden.
* Una versión con ejecución especulativa: Eager Haskell.
* Varias versiones orientadas a objetos: Haskell++, O'Haskell y Mondrian.
* Una versión educativa llamada Gofer desarrollada por Mark Jones que fue suplantada por Hugs (ver abajo). Para información más detallada, referirse al sitio oficial o a los enlaces al final de este artículo. (es)
- Haskell adalah bahasa pemrograman fungsional murni. Nama bahasa pemrograman Haskell diambil dari nama seseorang matematikawan , yang terkenal akan karyanya di bidang combinatory logic. Haskell hanya mengenal expression dan equation. (in)
- Haskell est un langage de programmation fonctionnel fondé sur le lambda-calcul et la logique combinatoire. Son nom vient du mathématicien et logicien Haskell Curry. Il a été créé en 1990 par un comité de chercheurs en théorie des langages intéressés par les langages fonctionnels et l'évaluation paresseuse. Le dernier standard est Haskell 2010 : c'est une version minimale et portable du langage conçue à des fins pédagogiques et pratiques, dans un souci d'interopérabilité entre les implémentations du langage et comme base de futures extensions. Le langage continue d'évoluer en 2020, principalement avec GHC, constituant ainsi un standard de facto comprenant de nombreuses extensions. (fr)
- Haskell(ハスケル)は非正格な評価を特徴とする純粋関数型プログラミング言語である。名称は数学者であり論理学者であるハスケル・カリーに由来する。 (ja)
- ( 해스켈은 여기로 연결됩니다. 다른 뜻에 대해서는 해스켈 (동음이의) 문서를 참고하십시오.) 하스켈 또는 해스켈(영어: Haskell IPA: [ˈhæskəl])은 순수 함수형 프로그래밍 언어이다. 교육계와 산업계 모두를 위해 설계된 하스켈은 , IO와 같은 여러 프로그래밍 언어의 기능을 개척하였다. 하스켈의 주된 구현체는 GHC(Glasgow Haskell Compiler)이다. (ko)
- Haskell is een functionele programmeertaal vernoemd naar de wiskundige Haskell Brooks Curry. (nl)
- Haskell è un linguaggio di programmazione puramente funzionale general-purpose creato da un apposito comitato alla fine degli anni ottanta principalmente per analizzare le caratteristiche dei linguaggi. È stato chiamato così in onore del matematico e logico statunitense Haskell Curry. (it)
- Haskell (МФА: [hæskəl]) — стандартизированный чистый функциональный язык программирования общего назначения. Является одним из самых распространённых языков программирования с поддержкой отложенных вычислений. Система типов — полная, сильная, статическая, с автоматическим выводом типов, основанная на системе типов Хиндли — Милнера. Поскольку язык функциональный, то основная управляющая структура — это функция. Отличительная черта языка — серьёзное отношение к типизации; во многом в связи с этим язык назван в честь исследователя теории типов и изобретателя комбинаторной логики Хаскелла Карри. Имеются средства взаимодействия с кодом на других языках программирования. Есть встроенная поддержка многозадачного и параллельного программирования, развитый инструментарий (средства автоматического тестирования, отладки и профилирования, в том числе для параллельных программ), существует несколько тысяч библиотек с открытым исходным кодом. (ru)
- Haskell é uma linguagem de programação puramente funcional, de propósito geral, nomeada em homenagem ao lógico Haskell Curry. Como uma linguagem funcional, a estrutura de controle primária é a função; a linguagem é baseada nas observações de Haskell Curry e seus descendentes intelectuais. Seu último padrão semi-oficial é o Haskell 98, destinado a especificar uma versão mínima e portável da linguagem para o ensino e como base para futuras extensões. Haskell é a linguagem funcional sobre a qual mais se realizam pesquisas atualmente. Muito utilizada no meio acadêmico, ė uma linguagem relativamente nova, derivada de outras linguagens funcionais, como por exemplo Miranda e ML. Ela se baseia em um estilo de programação em que se enfatiza mais o que deve ser feito (what) em detrimento de como deve ser feito (how). É uma linguagem que possui foco no alcance de soluções para problemas matemáticos, clareza, e de fácil manutenção nos códigos, e possui uma variedade de aplicações e apesar de simples é muito poderosa. (pt)
- Haskell – czysto funkcyjny język programowania nazwany na cześć amerykańskiego matematyka, Haskella Curry’ego. (pl)
- Haskell är ett funktionellt programspråk. Utvecklingen av språket, som fick sitt namn efter den amerikanska logikern Haskell Curry, startades 1987 av en internationell kommitté. Femton år senare, år 2003, publicerade de sedan en stabil definition av språket. Haskell bygger till stor del, som många andra funktionella programspråk, på lambdauttryck och rekursion, men har också ett starkt typsystem och flera andra relativt ovanliga egenskaper som exempelvis lat evaluering. Språket är också konstruerat för att vara så kompakt och så likt matematik som möjligt, och lånar därför symboler ur både logiken och matematiken. Det finns flera implementationer av Haskell, mest kända är tolken och kompilatorn Glasgow Haskell Compiler, båda två är fri programvara. Hugs är en läs-tolka-skriv-slinga liknande den som många Lisp-system har och används för att interaktivt köra och testa sina program och funktioner. Även GHC har en interaktiv tolk, GHCi, med ett gränssnitt liknande Hugs. (sv)
- Haskell (укр. Гаскель, Гаскелл) — стандартизована, винятково функційна мова програмування з нестрогою семантикою. Названа на честь американського математика Гаскелла Каррі, роботи якого в галузі математичної логіки є базовими для функційного програмування. Гаскель базується на лямбда численні. Найважливішими реалізаціями є компілятор Glasgow Haskell Compiler (GHC) та оснований на ньому компілятор GHCJS, що компілює Гаскель-код у скрипт мовою JavaScript. Історично важливим також є інтерпретатор Hugs, але на сьогодні він не підтримується. (uk)
- Haskell(发音为/ˈhæskəl/)是一种标准化的,通用的纯函數式編程語言,有惰性求值和强静态类型。它的命名源自美国逻辑学家哈斯凱爾·加里,他在数理逻辑方面上的工作使得函数式编程语言有了广泛的基础。在Haskell中,“函数是頭等物件”。作为一门函數程式語言,主要控制结构是函数。Haskell语言是1990年在编程语言Miranda的基础上标准化的,并且以λ演算为基础发展而来。这也是为什么Haskell语言以希腊字母「λ」(Lambda)作为自己的标志。Haskell具有“证明即程序、命题为类型”的特征。 (zh)
|
rdfs:comment
|
- هاسكل هي لغة برمجة مطابقة للمعايير، للأغراض العامة، وهي لغة وظيفية إلى حد كبير، دون دلالات ألفاظ ملزمة وبكتابة ثابتة وقوية. وقد سُميت بـ هاسكل علي اسم عالم المنطق «هاسكل كوري». وفي اللغة هاسكل، «تمثل الوظيفة مواطن من الدرجة الأولى» من لغة البرمجة. ولكونها لغة برمجة وظيفية فإن بنية التحكم الرئيسية هي الوظيفة. وترجع أصول اللغة إلى ملاحظات هاسكل كوري وأتباعه من المفكرين، بأن «الإثبات هو برنامج؛ والمعادلة التي يثبتها هي نوع للبرنامج». (ar)
- Haskell je standardizovaný funkcionální programovací jazyk používající líné vyhodnocování, pojmenovaný na počest logika Haskella Curryho. Jazyk se rychle vyvíjí, především díky svým implementacím Hugs a GHC. Haskell je jazyk dodržující referenční transparentnost. To, zjednodušeně řečeno, znamená, že tentýž (pod)výraz má na jakémkoliv místě v programu stejnou hodnotu. Mezi další vlastnosti tohoto jazyka patří přísné typování proměnných, které programátorovi může usnadnit odhalování chyb v programu. Haskell plně podporuje práci se soubory i standardními vstupy a výstupy. (cs)
- Haskell ist eine rein funktionale Programmiersprache, benannt nach dem US-amerikanischen Mathematiker Haskell Brooks Curry, dessen Arbeiten zur mathematischen Logik eine Grundlage funktionaler Programmiersprachen bilden. Haskell basiert auf dem Lambda-Kalkül, weshalb auch der griechische Buchstabe Lambda als Logo verwendet wird. Die wichtigste Implementierung ist der Glasgow Haskell Compiler (GHC). (de)
- Η Haskell είναι μια πρότυπη αμιγώς συναρτησιακή γλώσσα προγραμματισμού γενικής χρήσης με μη-αυστηρή σημασιολογία και ισχυρούς τύπους. Πήρε το όνομά της από τον επιστήμονα της λογικής Haskell Curry. Στη Haskell, "μια συνάρτηση είναι μέλος πρώτης τάξης" της γλώσσας προγραμματισμού. Ως συναρτησιακή γλώσσα προγραμματισμού, χρησιμοποιεί σαν κύρια δομή ελέγχου τη συνάρτηση. Η γλώσσα βασίζεται στις παρατηρήσεις του Haskell Curry (1934, 1958) και των πνευματικών του απογόνων, ότι "μια απόδειξη είναι ένα πρόγραμμα και ο μαθηματικός τύπος που αποδεικνύει είναι ο τύπος του προγράμματος". (el)
- Haskell (aŭ Esperante Haskelo) estas komputillingvo kreita de , , kaj en 1987. Pli specife, ĝi estas , nestrikta, pure funkcia lingvo. La lingvo estas nomita por , kies esploro pri matematika logiko estas la fundamento de funkciaj lingvoj. Haskell baziĝas de la lambdokalkulo. (eo)
- Haskell normalizatuta dagoen programazio lengoaia funtzionala da, semantika ulerkorra eta idazketa zorrotza duena. Haskell Curry logikariaren omenez du izena. Kaleratutako azken estandarra Haskell 2010 da, eta 2016ko maiatzetik, hurrengo bertsioa garatzen dabiltza, Haskell 2020 izena hartuko duena. Haskell lengoaiaren semantikan oinarritzen da, baina ez bere sintaxian. Akademia munduan eta industrian erabili ohi da Haskell lengoaia. (eu)
- Haskell adalah bahasa pemrograman fungsional murni. Nama bahasa pemrograman Haskell diambil dari nama seseorang matematikawan , yang terkenal akan karyanya di bidang combinatory logic. Haskell hanya mengenal expression dan equation. (in)
- Haskell est un langage de programmation fonctionnel fondé sur le lambda-calcul et la logique combinatoire. Son nom vient du mathématicien et logicien Haskell Curry. Il a été créé en 1990 par un comité de chercheurs en théorie des langages intéressés par les langages fonctionnels et l'évaluation paresseuse. Le dernier standard est Haskell 2010 : c'est une version minimale et portable du langage conçue à des fins pédagogiques et pratiques, dans un souci d'interopérabilité entre les implémentations du langage et comme base de futures extensions. Le langage continue d'évoluer en 2020, principalement avec GHC, constituant ainsi un standard de facto comprenant de nombreuses extensions. (fr)
- Haskell(ハスケル)は非正格な評価を特徴とする純粋関数型プログラミング言語である。名称は数学者であり論理学者であるハスケル・カリーに由来する。 (ja)
- ( 해스켈은 여기로 연결됩니다. 다른 뜻에 대해서는 해스켈 (동음이의) 문서를 참고하십시오.) 하스켈 또는 해스켈(영어: Haskell IPA: [ˈhæskəl])은 순수 함수형 프로그래밍 언어이다. 교육계와 산업계 모두를 위해 설계된 하스켈은 , IO와 같은 여러 프로그래밍 언어의 기능을 개척하였다. 하스켈의 주된 구현체는 GHC(Glasgow Haskell Compiler)이다. (ko)
- Haskell is een functionele programmeertaal vernoemd naar de wiskundige Haskell Brooks Curry. (nl)
- Haskell è un linguaggio di programmazione puramente funzionale general-purpose creato da un apposito comitato alla fine degli anni ottanta principalmente per analizzare le caratteristiche dei linguaggi. È stato chiamato così in onore del matematico e logico statunitense Haskell Curry. (it)
- Haskell – czysto funkcyjny język programowania nazwany na cześć amerykańskiego matematyka, Haskella Curry’ego. (pl)
- Haskell (укр. Гаскель, Гаскелл) — стандартизована, винятково функційна мова програмування з нестрогою семантикою. Названа на честь американського математика Гаскелла Каррі, роботи якого в галузі математичної логіки є базовими для функційного програмування. Гаскель базується на лямбда численні. Найважливішими реалізаціями є компілятор Glasgow Haskell Compiler (GHC) та оснований на ньому компілятор GHCJS, що компілює Гаскель-код у скрипт мовою JavaScript. Історично важливим також є інтерпретатор Hugs, але на сьогодні він не підтримується. (uk)
- Haskell(发音为/ˈhæskəl/)是一种标准化的,通用的纯函數式編程語言,有惰性求值和强静态类型。它的命名源自美国逻辑学家哈斯凱爾·加里,他在数理逻辑方面上的工作使得函数式编程语言有了广泛的基础。在Haskell中,“函数是頭等物件”。作为一门函數程式語言,主要控制结构是函数。Haskell语言是1990年在编程语言Miranda的基础上标准化的,并且以λ演算为基础发展而来。这也是为什么Haskell语言以希腊字母「λ」(Lambda)作为自己的标志。Haskell具有“证明即程序、命题为类型”的特征。 (zh)
- Haskell és un llenguatge de programació funcional estandarditzat de i avaluació tardana de les expressions (ang: lazy evaluation) en el moment que se'n demana el valor i pren el nom del matemàtic Haskell Curry. Es diu que és un llenguatge funcional pur. El cert és que admet però permet encapsular-ne els canvis (context ST), o bé circumscriure'n els al nivell superficial (context IO). data Color = Verd | Blau | Lila deriving (Eq, Show) -- el compilador deriva instàncies de les classes esmentades, obtenint la posició i el nom dels valors La fa possible incorporar-los a diferents estructures: (ca)
- Haskell (/ˈhæskəl/) is a general-purpose, statically-typed, purely functional programming language with type inference and lazy evaluation. Designed for teaching, research and industrial applications, Haskell has pioneered a number of programming language features such as type classes, which enable type-safe operator overloading, and monadic IO. Haskell's main implementation is the Glasgow Haskell Compiler (GHC). It is named after logician Haskell Curry. (en)
- Haskell (pronunciado /hæskəl/) es un lenguaje de programación estandarizado multi-propósito, funcionalmente puro, con evaluación no estricta y memorizada, y fuerte tipificación estática. Su nombre se debe al lógico estadounidense Haskell Curry, debido a su aporte al cálculo lambda, el cual tiene gran influencia en el lenguaje. En Haskell, "una función es un ciudadano de primera clase" del lenguaje de programación. Como lenguaje de programación funcional, el constructor de controles primario es la función. El lenguaje tiene sus orígenes en las observaciones de Haskell Curry y sus descendientes intelectuales. (es)
- Haskell é uma linguagem de programação puramente funcional, de propósito geral, nomeada em homenagem ao lógico Haskell Curry. Como uma linguagem funcional, a estrutura de controle primária é a função; a linguagem é baseada nas observações de Haskell Curry e seus descendentes intelectuais. Seu último padrão semi-oficial é o Haskell 98, destinado a especificar uma versão mínima e portável da linguagem para o ensino e como base para futuras extensões. (pt)
- Haskell (МФА: [hæskəl]) — стандартизированный чистый функциональный язык программирования общего назначения. Является одним из самых распространённых языков программирования с поддержкой отложенных вычислений. Система типов — полная, сильная, статическая, с автоматическим выводом типов, основанная на системе типов Хиндли — Милнера. Поскольку язык функциональный, то основная управляющая структура — это функция. Отличительная черта языка — серьёзное отношение к типизации; во многом в связи с этим язык назван в честь исследователя теории типов и изобретателя комбинаторной логики Хаскелла Карри. (ru)
- Haskell är ett funktionellt programspråk. Utvecklingen av språket, som fick sitt namn efter den amerikanska logikern Haskell Curry, startades 1987 av en internationell kommitté. Femton år senare, år 2003, publicerade de sedan en stabil definition av språket. Haskell bygger till stor del, som många andra funktionella programspråk, på lambdauttryck och rekursion, men har också ett starkt typsystem och flera andra relativt ovanliga egenskaper som exempelvis lat evaluering. Språket är också konstruerat för att vara så kompakt och så likt matematik som möjligt, och lånar därför symboler ur både logiken och matematiken. (sv)
|