回答

2

第一類函數是一個被指定的函數,即它可以作爲語言的一部分進行操作,可以傳遞給其他函數,也可以是變量的值。

匿名函數只是一個沒有名稱(或沒有「函數」名稱,如果函數和變量佔用單獨的名稱空間的函數)。

用匿名的,非一流的功能設計一種語言將是相當困難的,但這兩個概念是足夠明顯的,至少可以。同樣,你絕對可以擁有一流功能的語言,但沒有匿名功能。這些語言很少見,因爲這樣的設計沒有多大意義。

+0

我們是否需要代表具有匿名功能?像C# - C#擁有委託,所以有匿名函數,但是java沒有委託和匿名函數 - 代理對於Java,Groovy,Scala等語言不是必需的嗎? – user3166171

+0

@ user3166171我不知道C#代表是什麼。他們不需要匿名功能。 – Marcin

0

Marcin有正確的答案。舉一些例子:C和C#1.0都有一流的功能,但沒有匿名功能。在這兩種情況下,只能顯式聲明命名函數,但一旦擁有,就可以獲得對它們的引用並將它們存儲在變量中。