# Infix operator

Jump to navigation
Jump to search

## Overview

Functions in Haskell are usually called using prefix notation, or the function name followed by its arguments. However, some functions e.g. addition are called using *infix notation* - putting the function name between its two arguments:

Prelude> 17 + 25 42

## Using infix functions with prefix notation

Putting parentheses around an infix operator converts it into a prefix function:

Prelude> (+) 1 2 3 Prelude> (*) 3 4 12

## Using prefix functions with infix notation

Putting ```

-marks around a prefix function allows us to use it like an infix function:

Prelude> let concatPrint x y = putStrLn $ (++) x y Prelude> concatPrint "a" "b" ab Prelude> "a" `concatPrint` "b" ab

Note that you can only normally do this with a function that takes two arguments. Actually, for a function taking more than two arguments, you can do it but it's not nearly as nice (note the need for extra parentheses):

Prelude> foldl (+) 0 [1..5] 15 Prelude> ((+) `foldl` 0) [1..5] 15