1718年,約翰·貝努里(en:Johann Bernoulli)把函數定義為「一個變數的函數是指由這個變數和常量以任何一種方式組成的一種量。」1748年,約翰·貝努里的學生歐拉(Leonhard Euler)在《無窮分析引論》一書中說:「一個變數的函數是由該變數和一些數或常量以任何一種方式構成的解析表達式」。例如f(x) = sin(x) + x3。1775年,歐拉在《微分學原理》一書中又提出了函數的一個定義:「如果某些量以如下方式依賴於另一些量,即當後者變化時,前者本身也發生變化,則稱前一些量是後一些量的函數。」
19世紀的數學家開始對數學的各個分支作規範整理。維爾斯特拉斯(Karl Weierstrass)提出將微積分學建立在算術,而不是幾何的基礎上,因而更趨向於歐拉的定義。
通過擴展函數的定義,數學家能夠對一些「奇怪」的數學對象進行研究,例如不可導的連續函數。這些函數曾經被認為只具有理論價值,遲至20世紀初時它們仍被視作「怪物」。稍後,人們發現這些函數在對如布朗運動之類的物理現象進行建模時有重要的作用。
到19世紀末,數學家開始嘗試利用集合論來規範數學。他們試圖將每一類數學對象定義為一個集合。狄利克雷(Johann Peter Gustav Lejeune Dirichlet)給出了現代正式的函數定義(參見下文#正式定義)。狄利克雷的定義將函數視作數學關係的特例。然而對於實際應用的情況,現代定義和歐拉定義的區別可以忽略不計。
正式定義
從輸入值集合X 到可能的輸出值集合Y 的函數f(記作 f : X → Y)是X與Y的關係,滿足如下條件:
f 是完全的:對X 中任一元素x 都有集合Y 中的元素y 滿足x f y (x 與y 是f 相關的)。即,對每一個輸入值,Y 中都有至少一個與之對應的輸出值。
f 是多對一的:若x f y 且x f z ,則y = z 。即,多個輸入可以映射到一個輸出,但一個輸入不能映射到多個輸出。
定義域中任一x 在對映域中唯一對應的y 記為f(x)。