Plusieurs fonctionnalités de Haskell/GHC ont une faible accessibilité à Google. Parce que certains d'entre eux sont composés de symboles :)
Cette page est une collection de référence pour faciliter leur recherche.
Si vous souhaitez rechercher des symboles de fonction tels que .
, $
, >>=
, <*>
, ..., vous pouvez utiliser les moteurs de recherche suivants :
Joyeux Haskelling !
!
: "drapeau de rigueur"[ Rapport linguistique Haskell 2010 ]
data Vec = Vec ! Int
!
: "motif de détonation"[Guide de l'utilisateur GHC]
f1 ! x =
#
: "MagicHash"[Guide de l'utilisateur GHC]
data Int = I # Int #
#
: "Littéraux étendus"[Guide de l'utilisateur GHC]
f x = case x of
123 # Int8 -> False
_ -> True
#
: "Étiquettes surchargées"[Guide de l'utilisateur GHC]
example = # x ( Point 1 2 )
#
: Directive du préprocesseur C[Guide de l'utilisateur GHC]
#include "MachDeps.h"
#
: opérateur de la commande hsc2hs[Guide de l'utilisateur GHC]
flag = # const VER_MAJORVERSION
$( )
: Syntaxe d'épissage du modèle Haskell[Guide de l'utilisateur GHC]
two = $ (add1 1 )
$$( )
: Syntaxe d'épissage du modèle typé Haskell[Guide de l'utilisateur GHC]
two = $$ (add1 1 )
%1 ->
: "Types linéaires"[Guide de l'utilisateur GHC]
f :: a % 1 -> a
'
: un identifiant est constitué d'une lettre suivie de zéro ou plusieurs lettres, chiffres, traits de soulignement et guillemets simples.[ Rapport linguistique Haskell 2010 ]
xs' = f ys
'
: les constructeurs promus sont préfixés par une coche '[Guide de l'utilisateur GHC]
type * = TYPE 'LiftedRep
'
''
: Syntaxe de citation du modèle Haskell[Guide de l'utilisateur GHC]
makeLenses ''FooBar
()
: "type d'unité"[ Rapport linguistique Haskell 2010 ] [ Rapport linguistique Haskell 2010 ]
main :: IO ()
()
: "expression unitaire"[ Rapport linguistique Haskell 2010 ] [ Rapport linguistique Haskell 2010 ]
return ()
( )
: "section" - une syntaxe pratique pour une application partielle[Rapport linguistique Haskell 2010]
add1 = ( 1 + )
(,)
: le constructeur d'un tuple[Rapport linguistique Haskell 2010]
f x y = liftM2 (,) x y
(, xxx)
: "TupleSections"[Guide de l'utilisateur GHC]
f xs = fmap (, True ) xs
(# #)
: "tuple non boxé"[Guide de l'utilisateur GHC]
f x y = ( # x + 1 , y - 1 # )
(# | | #)
: "somme non boxée"[Guide de l'utilisateur GHC]
f :: ( # Int | Bool | Char # ) -> Int
f ( # x | | # ) = 1
f ( # | True | # ) = 2
f _ = 3
(..)
: exporter tous ses noms[ Rapport linguistique Haskell 2010 ]
module GHC.Arr (
Ix ( .. ),
(..)
: importer tous ses noms[ Rapport linguistique Haskell 2010 ]
import GHC.Types ( Bool ( .. ))
*
: le genre des types ordinaires (synonyme de Type
et TYPE `LiftedRep
)[ Rapport linguistique Haskell 2010 ] [ Guide de l'utilisateur GHC ]
ghci > : kind Int
Int :: *
->
: expression de cas[ Rapport linguistique Haskell 2010 ]
f x = case x of
Nothing -> False
Just _ -> True
->
: "afficher le modèle"[Guide de l'utilisateur GHC]
size (view -> Unit ) = 1
size (view -> Arrow t1 t2) = size t1 + size t2
->
: "type de fonction"[ Rapport linguistique Haskell 2010 ]
id :: a -> a
.
: les noms de modules sont une séquence séparée par des points[Rapport linguistique Haskell 2010]
import Data.Maybe
import qualified Text.Read.Lex as L
lexP = lift L. lex
.
: "SurchargéRecordDot"[Guide de l'utilisateur GHC]
getResult c = c . result
getResults = map ( . result)
.
: "OverloadedRecordUpdate" (expérimental)[Guide de l'utilisateur GHC]
setYearTaken c y = c{taken . year = y}
.
: quantification universelle[Guide de l'utilisateur GHC]
f :: forall a . a -> [ a ]
:
: "constructeur de liste" (inconvénients)[ Rapport linguistique Haskell 2010 ] [ Rapport linguistique Haskell 2010 ] [ Rapport linguistique Haskell 2010 ]
f x xs = x : xs
:
: un symbole d'opérateur commençant par deux points est un constructeur[ Rapport linguistique Haskell 2010 ]
data NonEmpty a = a :| [a]
::
: "signature de type"[Rapport linguistique Haskell 2010]
id :: a -> a
id x = x
::
: "signature de type d'expression" (annotation de type)[ Rapport linguistique Haskell 2010 ]
x = fromIntegral ( maxBound :: Int )
;
: point-virgule dans la règle de mise en page[ Rapport linguistique Haskell 2010 ]
f x = let a = 1 ; b = 2
g y = exp2
in exp1
<-
: expression lambda-bound dans do[ Rapport linguistique Haskell 2010 ]
f = do
x <- getLine
putStrLn x
<-
: "garde-modèle"[ Rapport linguistique Haskell 2010 ]
f x
| Just y <- g x =
=>
: contexte (contrainte de classe de type)[ Rapport linguistique Haskell 2010 ]
subtract :: ( Num a ) => a -> a -> a
subtract x y = y - x
?
: "Params implicites"[Guide de l'utilisateur GHC]
sort :: ( ? cmp :: a -> a -> Bool ) => [ a ] -> [ a ]
sort = sortBy ? cmp
@
: "comme modèle"[ Rapport linguistique Haskell 2010 ]
f s @ (x : xs) =
@
: "type application"[Guide de l'utilisateur GHC]
f = read @ Int
@
: "type abstraction"[Guide de l'utilisateur GHC]
class C @ k a where
[]
: "liste vide" (nil)[ Rapport linguistique Haskell 2010 ] [ Rapport linguistique Haskell 2010 ]
null [] = True
null _ = False
[ .. ]
: "suite arithmétique"[Rapport linguistique Haskell 2010]
xs = [ 1 .. 10 ]
[ | <- ]
: "compréhension de la liste"[ Rapport linguistique Haskell 2010 ]
xs = [x ^ 2 | x <- [ 1 .. 10 ]]
[| |]
, [e| |]
, [d| |]
, [t| |]
, [p| |]
: Syntaxe de citation du modèle Haskell (expression, déclaration, type et modèle)[Guide de l'utilisateur GHC]
add1 x = [ | x + 1 | ]
[varid| |]
: Syntaxe de quasi-citation du modèle Haskell[Guide de l'utilisateur GHC]
greet name = [ interpolate | Hello, #name! |]
[|| ||]
: Syntaxe de citation du modèle typé Haskell[Guide de l'utilisateur GHC]
add1 x = [ || x + 1 || ]
_
: "modèle générique"[Rapport linguistique Haskell 2010]
f Red =
f Blue =
f _ =
_
: identifiants inutilisés commençant par un trait de soulignement[ Guide de l'utilisateur GHC ] [ Rapport linguistique Haskell 2010 ]
_w = True -- No warning: _w starts with an underscore
_
: "trou typé" (niveau expression)[Guide de l'utilisateur GHC]
sum xs = foldr _ 0 xs
_
: "type wildcard" (niveau de type)[Guide de l'utilisateur GHC]
not' :: Bool -> _
not' x = not x
_
: "caractère générique d'extra-contraintes"[Guide de l'utilisateur GHC]
arbitCs :: _ => a -> String
_
: "Soulignés numériques"[Guide de l'utilisateur GHC]
million = 1_000_000
->
: "abstraction lambda"[Rapport linguistique Haskell 2010]
add1 = x -> x + 1
case ->
: "LambdaCase"[Guide de l'utilisateur GHC]
f = case
Red -> 2
Blue -> 1
_ -> 0
` `
: "notation infixe" - un identifiant entouré d'accents graves[Rapport linguistique Haskell 2010]
div10 x = x `div` 10
{ }
: accolade dans la règle de mise en page[Rapport linguistique Haskell 2010]
f x = case x of { Nothing -> False ; Just _ -> True }
{ }
: "syntaxe d'enregistrement" (types de données avec étiquettes de champ)[ Rapport linguistique Haskell 2010 ]
data MyPoint = Point { x :: Int , y :: Int }
{..}
: "caractère générique d'enregistrement"[Guide de l'utilisateur GHC]
f Vec { .. } =
{-# #-}
: "pragme du compilateur"[ Rapport linguistique Haskell 2010 ] [ Guide de l'utilisateur GHC ] [ Guide de l'utilisateur GHC ]
{-# LANGUAGE TypeApplications #-}
{-# LANGUAGE GADTs #-}
{-# INLINE fmap #-}
|
: "garde booléenne" (garde)[Rapport linguistique Haskell 2010]
clip255 x
| x > 255 = 255
| otherwise = x
|
: "MultiWaySi"[Guide de l'utilisateur GHC]
if | x == " :q " -> quit
| isError x -> errorExit x
| otherwise -> execCommand x
|
: déclaration de type de données algébrique[ Rapport linguistique Haskell 2010 ]
data Maybe a = Nothing | Just a
|
: "dépendance fonctionnelle"[Guide de l'utilisateur GHC]
class Foo a b c | a b -> c where
~
: "modèle irréfutable"[Rapport linguistique Haskell 2010]
f1 ~ (as,bs) =
~
: modèle paresseux lorsque Strict est activé[Guide de l'utilisateur GHC]
{-# LANGUAGE Strict #-}
f ~ x =
~
: drapeau de la paresse[Guide de l'utilisateur GHC]
data T = C ~ a
~
: "contrainte d'égalité"[Guide de l'utilisateur GHC]
class ( F a ~ b ) => C a b where