Vários recursos do Haskell/GHC têm baixa googleabilidade. Porque alguns deles são compostos de símbolos :)
Esta página é uma coleção de referência para apoiar a busca deles.
Se você quiser pesquisar símbolos de função como .
, $
, >>=
, <*>
, ..., você pode usar os seguintes mecanismos de pesquisa:
Feliz Haskelling!
!
: "sinalizador de rigidez"[Relatório de linguagem Haskell 2010]
data Vec = Vec ! Int
!
: "padrão de estrondo"[Guia do usuário do GHC]
f1 ! x =
#
: "MagicHash"[Guia do usuário do GHC]
data Int = I # Int #
#
: "Literais Estendidos"[Guia do usuário do GHC]
f x = case x of
123 # Int8 -> False
_ -> True
#
: "Etiquetas Sobrecarregadas"[Guia do usuário do GHC]
example = # x ( Point 1 2 )
#
: Diretiva do pré-processador C[Guia do usuário do GHC]
#include "MachDeps.h"
#
: operador do comando hsc2hs[Guia do usuário do GHC]
flag = # const VER_MAJORVERSION
$( )
: Sintaxe de emenda do modelo Haskell[Guia do usuário do GHC]
two = $ (add1 1 )
$$( )
: Sintaxe de emenda de Haskell do modelo digitado[Guia do usuário do GHC]
two = $$ (add1 1 )
%1 ->
: "Tipos lineares"[Guia do usuário do GHC]
f :: a % 1 -> a
'
: um identificador consiste em uma letra seguida por zero ou mais letras, dígitos, sublinhados e aspas simples[Relatório de linguagem Haskell 2010]
xs' = f ys
'
: construtores promovidos são prefixados por uma marca'[Guia do usuário do GHC]
type * = TYPE 'LiftedRep
'
''
: Sintaxe de cotação do modelo Haskell[Guia do usuário do GHC]
makeLenses ''FooBar
()
: "tipo de unidade"[Relatório de linguagem Haskell 2010] [Relatório de linguagem Haskell 2010]
main :: IO ()
()
: "expressão unitária"[Relatório de linguagem Haskell 2010] [Relatório de linguagem Haskell 2010]
return ()
( )
: "seção" - uma sintaxe conveniente para aplicação parcial[Relatório de linguagem Haskell 2010]
add1 = ( 1 + )
(,)
: o construtor para uma tupla[Relatório de linguagem Haskell 2010]
f x y = liftM2 (,) x y
(, xxx)
: "TupleSections"[Guia do usuário do GHC]
f xs = fmap (, True ) xs
(# #)
: "tupla sem caixa"[Guia do usuário do GHC]
f x y = ( # x + 1 , y - 1 # )
(# | | #)
: "soma sem caixa"[Guia do usuário do GHC]
f :: ( # Int | Bool | Char # ) -> Int
f ( # x | | # ) = 1
f ( # | True | # ) = 2
f _ = 3
(..)
: exporta todos os seus nomes[Relatório de linguagem Haskell 2010]
module GHC.Arr (
Ix ( .. ),
(..)
: importe todos os seus nomes[Relatório de linguagem Haskell 2010]
import GHC.Types ( Bool ( .. ))
*
: o tipo de tipos comuns (sinônimo de Type
e TYPE `LiftedRep
)[Relatório de linguagem Haskell 2010] [Guia do usuário do GHC]
ghci > : kind Int
Int :: *
->
: expressão de caso[Relatório de linguagem Haskell 2010]
f x = case x of
Nothing -> False
Just _ -> True
->
: "padrão de visualização"[Guia do usuário do GHC]
size (view -> Unit ) = 1
size (view -> Arrow t1 t2) = size t1 + size t2
->
: "tipo de função"[Relatório de linguagem Haskell 2010]
id :: a -> a
.
: os nomes dos módulos são uma sequência separada por pontos[Relatório de linguagem Haskell 2010]
import Data.Maybe
import qualified Text.Read.Lex as L
lexP = lift L. lex
.
: "SobrecarregadoRecordDot"[Guia do usuário do GHC]
getResult c = c . result
getResults = map ( . result)
.
: "OverloadedRecordUpdate" (experimental)[Guia do usuário do GHC]
setYearTaken c y = c{taken . year = y}
.
: quantificação universal[Guia do usuário do GHC]
f :: forall a . a -> [ a ]
:
: "construtor de lista" (contras)[Relatório de linguagem Haskell 2010] [Relatório de linguagem Haskell 2010] [Relatório de linguagem Haskell 2010]
f x xs = x : xs
:
: um símbolo de operador começando com dois pontos é um construtor[Relatório de linguagem Haskell 2010]
data NonEmpty a = a :| [a]
::
: "digitar assinatura"[Relatório de linguagem Haskell 2010]
id :: a -> a
id x = x
::
"assinatura de tipo de expressão" (anotação de tipo)[Relatório de linguagem Haskell 2010]
x = fromIntegral ( maxBound :: Int )
;
: ponto e vírgula na regra de layout[Relatório de linguagem Haskell 2010]
f x = let a = 1 ; b = 2
g y = exp2
in exp1
<-
: vinculado a lambda na expressão do[Relatório de linguagem Haskell 2010]
f = do
x <- getLine
putStrLn x
<-
: "guarda padrão"[Relatório de linguagem Haskell 2010]
f x
| Just y <- g x =
=>
: contexto (restrição de classe de tipo)[Relatório de linguagem Haskell 2010]
subtract :: ( Num a ) => a -> a -> a
subtract x y = y - x
?
: "ImplicitParams"[Guia do usuário do GHC]
sort :: ( ? cmp :: a -> a -> Bool ) => [ a ] -> [ a ]
sort = sortBy ? cmp
@
: "como padrão"[Relatório de linguagem Haskell 2010]
f s @ (x : xs) =
@
: “digite aplicativo”[Guia do usuário do GHC]
f = read @ Int
@
: “tipo abstração”[Guia do usuário do GHC]
class C @ k a where
[]
: "lista vazia" (nulo)[Relatório de linguagem Haskell 2010] [Relatório de linguagem Haskell 2010]
null [] = True
null _ = False
[ .. ]
: "sequência aritmética"[Relatório de linguagem Haskell 2010]
xs = [ 1 .. 10 ]
[ | <- ]
: "compreensão da lista"[Relatório de linguagem Haskell 2010]
xs = [x ^ 2 | x <- [ 1 .. 10 ]]
[| |]
, [e| |]
, [d| |]
, [t| |]
, [p| |]
: Sintaxe de cotação do modelo Haskell (expressão, declaração, tipo e padrão)[Guia do usuário do GHC]
add1 x = [ | x + 1 | ]
[varid| |]
: Sintaxe de quase-citação do modelo Haskell[Guia do usuário do GHC]
greet name = [ interpolate | Hello, #name! |]
[|| ||]
: Sintaxe de cotação do modelo digitado Haskell[Guia do usuário do GHC]
add1 x = [ || x + 1 || ]
_
: "padrão curinga"[Relatório de linguagem Haskell 2010]
f Red =
f Blue =
f _ =
_
: identificadores não utilizados começando com sublinhado[Guia do usuário do GHC] [Relatório de linguagem Haskell 2010]
_w = True -- No warning: _w starts with an underscore
_
: "buraco digitado" (nível de expressão)[Guia do usuário do GHC]
sum xs = foldr _ 0 xs
_
: "tipo curinga" (nível de tipo)[Guia do usuário do GHC]
not' :: Bool -> _
not' x = not x
_
: "curinga de restrições extras"[Guia do usuário do GHC]
arbitCs :: _ => a -> String
_
: "Sublinhados Numéricos"[Guia do usuário do GHC]
million = 1_000_000
->
: "abstração lambda"[Relatório de linguagem Haskell 2010]
add1 = x -> x + 1
case ->
: "LambdaCase"[Guia do usuário do GHC]
f = case
Red -> 2
Blue -> 1
_ -> 0
` `
: "notação infixa" - um identificador entre acentos graves[Relatório de linguagem Haskell 2010]
div10 x = x `div` 10
{ }
: chave na regra de layout[Relatório de linguagem Haskell 2010]
f x = case x of { Nothing -> False ; Just _ -> True }
{ }
: "sintaxe de registro" (tipos de dados com rótulos de campo)[Relatório de linguagem Haskell 2010]
data MyPoint = Point { x :: Int , y :: Int }
{..}
: "gravar curinga"[Guia do usuário do GHC]
f Vec { .. } =
{-# #-}
: "pragma do compilador"[Relatório de linguagem Haskell 2010] [Guia do usuário do GHC] [Guia do usuário do GHC]
{-# LANGUAGE TypeApplications #-}
{-# LANGUAGE GADTs #-}
{-# INLINE fmap #-}
|
: "guarda booleana" (guarda)[Relatório de linguagem Haskell 2010]
clip255 x
| x > 255 = 255
| otherwise = x
|
: "MultiWayIf"[Guia do usuário do GHC]
if | x == " :q " -> quit
| isError x -> errorExit x
| otherwise -> execCommand x
|
: declaração de tipo de dados algébrico[Relatório de linguagem Haskell 2010]
data Maybe a = Nothing | Just a
|
: "dependência funcional"[Guia do usuário do GHC]
class Foo a b c | a b -> c where
~
: "padrão irrefutável"[Relatório de linguagem Haskell 2010]
f1 ~ (as,bs) =
~
: padrão lento quando Strict está habilitado[Guia do usuário do GHC]
{-# LANGUAGE Strict #-}
f ~ x =
~
: bandeira da preguiça[Guia do usuário do GHC]
data T = C ~ a
~
: "restrição de igualdade"[Guia do usuário do GHC]
class ( F a ~ b ) => C a b where