Personal tools

Section of an infix operator

From HaskellWiki

(Difference between revisions)
Jump to: navigation, search
(Category:Glossary)
(sectioning examples taken from article Currying)
Line 3: Line 3:
 
* <hask>(2^)</hask> is equivalent to <hask>(^) 2</hask>
 
* <hask>(2^)</hask> is equivalent to <hask>(^) 2</hask>
 
* <hask>(^2)</hask> is equivalent to <hask>flip (^) 2</hask>
 
* <hask>(^2)</hask> is equivalent to <hask>flip (^) 2</hask>
  +
  +
  +
Like [[partial application]] and [[lambda abstraction]], sectioning provides a convenient way of writing some functions without having to explicitly name them:
  +
* <hask>(1+)</hask> (unsugared: <hask>(+) 1</hask>) is the "increment" function,
  +
* <hask>(2*)</hask> is the "double" function,
  +
* <hask>('\t':)</hask> is the "indent" function,
  +
* <hask>(`elem` "AEIOU")</hask> is the "is-capital-vowel-in-English" function (ignoring the "sometimes Y").
  +
  +
== See also ==
  +
  +
* [[Currying]]
   
   

Revision as of 14:04, 3 July 2007

In Haskell there is a special syntax for partial application on infix operators.

  • (2^)
    is equivalent to
    (^) 2
  • (^2)
    is equivalent to
    flip (^) 2


Like partial application and lambda abstraction, sectioning provides a convenient way of writing some functions without having to explicitly name them:

  • (1+)
    (unsugared:
    (+) 1
    ) is the "increment" function,
  • (2*)
    is the "double" function,
  • ('\t':)
    is the "indent" function,
  • (`elem` "AEIOU")
    is the "is-capital-vowel-in-English" function (ignoring the "sometimes Y").

See also