"一流函數"是一個術語,在計算機程序設計和計算機科學中,如果計算機程序設計語言對函數的處理遵循一套準則,盡管這些準則的全部范圍和深度沒有正式商定。要有一流的功能計算機編程語言,必須支持的主要功能是能夠將函數作為...
"一流函數"是一個術語,在計算機程序設計和計算機科學中,如果計算機程序設計語言對函數的處理遵循一套準則,盡管這些準則的全部范圍和深度沒有正式商定。要有一流的功能計算機編程語言,必須支持的主要功能是能夠將函數作為參數傳遞給其他函數。函數還必須能夠分配給變量以便存儲。用于確定一級函數的其他屬性包括在運行時動態生成函數的能力和此功能一個函數作為另一個函數的返回值。支持一級函數體系結構的語言允許高層次的抽象,而且在某些情況下,還提供了運行時動態代碼生成的機制

當"功能"一詞在一個松散定義的意義上被使用時,女性正在與電腦倒立,在程序中通過變量傳遞函數的概念對于本機實現一流函數支持的語言來說并不一定是唯一的,在許多編程語言中,通過不同的機制可以很容易地完成。然而,一流函數語言定義的一個嚴格部分是,函數作為變量的處理必須在本機完成,不使用諸如條件定義之類的元數據,也不必調用編譯器重新編譯代碼術語"函數"也被用來指代獨立的代碼塊,這意味著它們不包括面向對象編程語言中稱為方法的代碼塊,也不包括有時在其他語言中稱為過程的代碼塊當一種語言被設計成允許使用一流的函數代碼時,有些設計模式可以比其他語言更直接地實現,函數可以接收一個函數作為變量,然后構造一個新函數并將新函數返回給調用代碼,因此,這為程序代碼的運行時創建了一種機制,這也使得在語言中使用用戶輸入的實時函數成為可能,而不需要使用諸如反射或求值之類的過程一級函數體系結構的基本用途包括創建易于重用的泛型函數和實現遞歸數學算法,這些算法能夠在運算過程中自動修改方程組。一類機制的一個類似的、更高級的用途是在其所在語言中實現多態性這可以允許使用相同的函數簽名調用函數,但根據調用時的上下文執行代碼,有時通過向多態函數傳遞鍵函數來執行代碼。