Difference between revisions of "Pronunciation"
m (Added links.) 
m (adding links) 

Line 1:  Line 1:  
−  This page needs more work. 

+  There was a thread on HaskellCafe about [http://www.haskell.org/pipermail/haskellcafe/2008January/038756.html how to pronounce Haskell]. 

−  +  Below are some notes for beginners on how to pronounce those strange Haskell operators and 'read' Haskell programs. 

This is meant to be a table with formal and informal ways of saying various operators and code snippets. 
This is meant to be a table with formal and informal ways of saying various operators and code snippets. 

Line 19:  Line 19:  
 is 
 is 

 
 

−   <hask> == </hask> 

+   [http://haskell.org/ghc/docs/latest/html/libraries/base/Prelude.html#v%3A%3D%3D <hask> == </hask>] 

 equals 
 equals 

 
 

−   <hask> /= </hask> 

+   [http://haskell.org/ghc/docs/latest/html/libraries/base/Prelude.html#v%3A%2F%3D <hask> /= </hask>] 

−   not 
+   not equals 
 
 

 <hask> => </hask> 
 <hask> => </hask> 

 is a witness for, implies 
 is a witness for, implies 

+   [http://www.haskell.org/tutorial/classes.html Type Classes and Overloading] 

 
 

 <hask> . </hask> 
 <hask> . </hask> 

Line 38:  Line 39:  
 [http://haskell.org/arrows/syntax.html Arrows syntax] 
 [http://haskell.org/arrows/syntax.html Arrows syntax] 

 
 

−   <hask> ++ </hask> 

+   [http://haskell.org/ghc/docs/latest/html/libraries/base/Prelude.html#v%3A%2B%2B <hask> ++ </hask>] 

 append 
 append 

 
 

Line 51:  Line 52:  
 <hask> \ </hask> 
 <hask> \ </hask> 

 lambda 
 lambda 

+   [[Lambda abstraction]] 

+  [http://www.haskell.org/onlinereport/exps.html#sect3.3 Haskell 98 Report] 

 
 

 <hask> ! </hask> 
 <hask> ! </hask> 

 bang; strict (in patterns or data definitions); index (in expressions) 
 bang; strict (in patterns or data definitions); index (in expressions) 

+   [http://www.haskell.org/ghc/docs/latest/html/users_guide/bangpatterns.html Bang Patterns] 

+  [[Keywords]] 

 
 

 <hask> ~ </hask> 
 <hask> ~ </hask> 
Revision as of 17:26, 8 April 2008
There was a thread on HaskellCafe about how to pronounce Haskell.
Below are some notes for beginners on how to pronounce those strange Haskell operators and 'read' Haskell programs.
This is meant to be a table with formal and informal ways of saying various operators and code snippets.
Symbol  Pronunciation  References 

::

has type (in definitions); at type (in expressions or patterns)  
>

maps to, to  
=

is  
==

equals  
/=

not equals  
=>

is a witness for, implies  Type Classes and Overloading 
.

dot (could be used anywhere, but especially in, for example, Data.Char.ord), ring, compose (for example, negate . (+1)), (silent) (for example, forall a. (Num a) => a)  
<

drawn from, from  
<

arrow application  Arrows syntax 
++

append  
>>=

bind  About monads
Monads as containers 
>>

then  
\

lambda  Lambda abstraction
Haskell 98 Report 
!

bang; strict (in patterns or data definitions); index (in expressions)  Bang Patterns
Keywords 
~

irrefutable, lazy (in patterns)  
:

cons  
[]

nil  
()

unit  
(,)

2tuple, pair  
(a,b,c)

[3]tuple [of] a, b, and c  
({)}

just as inconvenient to convey grouping verbally, whether it's layout or punctuation 
Example  Pronunciation 

f :: Int > Int

f has type Int to Int 
Thoughts on improving this page:
The tables above would be best split into more columns to distinguish Informal, possibly bad suggestions like "then", "is", "gets", from Formal correct ways of saying the same thing. The Symbols could also be named in a literal way in another column, such as "arrow" or "doublecolon". The Description column can be quite brief and a link provided to the relevant wiki page for the operator.
Some words, particularly the informal ones, may be good for several different symbols, but these can hopefully be arranged so that their context will make them unambiguous when reading a code snippet.