Personal tools

Pronunciation

From HaskellWiki

(Difference between revisions)
Jump to: navigation, search
m (correct spelling)
(Noted some ideas for improvements contributed in Haskell-Cafe etc.)
Line 1: Line 1:
Some notes for beginners on how to pronounce those strange Haskell operators etc.
+
This page needs more work.
   
This is just a rough start to this page. Obviously needs more work.
+
Some notes for beginners on how to pronounce those strange Haskell operators and 'read' Haskell programs.
   
This can be a table with formal and informal ways of saying various operators and code snippets such as
+
This is meant to be a table with formal and informal ways of saying various operators and code snippets.
   
 
{|
 
{|
Line 81: Line 81:
 
|}
 
|}
   
should we add informal, possibly bad suggestions like "then", "is", "gets"?
+
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 "double-colon". 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.
   
 
[[Category:Syntax]]
 
[[Category:Syntax]]

Revision as of 16:08, 9 January 2008

This page needs more work.

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
 ::
has type (in definitions); at type (in expressions or patterns)
 ->
maps to, to
 =
is
 ==
equals
 /=
not-equals
 =>
is a witness for, implies
 .
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
 -<
 ++
append
 >>=
bind
 >>
then
 \
lambda
 !
bang; strict (in patterns or data definitions); index (in expressions)
 ~
irrefutable, lazy (in patterns)
 :
cons
 []
nil
 ()
unit
 (,)
2-tuple, 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 "double-colon". 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.