First-class function (original) (raw)

About DBpedia

头等函数(first-class function;第一級函數)是指在程序设计语言中,函数被当作头等公民。这意味着,函数可以作为别的函数的参数、函数的返回值,赋值给变量或存储在数据结构中。 有人主张应包括支持匿名函数(函数字面量,function literals)。在这样的语言中,函数的名字没有特殊含义,它们被当作具有函数类型的普通的变量对待。1960年代中期,克里斯托弗·斯特雷奇在“functions as first-class citizens”中提出这一概念。 头等函数是函数式程序设计所必须的。通常要使用高阶函数。map函数就是一个高阶函数,其实参是一个函数及一个list,返回结果是把作为参数的函数作用于list的每个元素后的结果形成的list。 把函数作为函数参数与函数返回值会遇到特别的困难。特别是存在与、匿名函数。历史上,这被称作。 早期的指令式编程语言,或者不支持函数作为结果类型(如ALGOL 60, Pascal),或者忽略嵌套函数与非局部变量(如C语言)。早期的函数式语言Lisp采取了动态作用域方法,把非局部变量绑定到函数执行点最近的变量定义。Scheme语言支持词法作用域的头等函数,把对函数的引用绑定到闭包(closure)而不是函数指针,这使得垃圾收集成为必须。

Property Value
dbo:abstract Eine First-Class-Funktion (englisch first-class function, deutsch etwa „Funktion erster Klasse“) bezeichnet in der Programmierung eine Funktion, die * einer anderen Funktion als Argument übergeben, * von einer anderen Funktion als Wert zurückgegeben, * einer Variablen zugewiesen, * in einer Datenstruktur gespeichert und * zur Laufzeit erzeugt werden kann.Teilweise gilt auch die Möglichkeit, anonyme Funktionen zu definieren, als Kriterium für eine first-class-Funktion. Erst damit wird es möglich, Closures zu erzeugen, anonyme Funktionen zu definieren oder Currying durchzuführen. Der Begriff wurde von Christopher Strachey im Kontext functions as first-class citizens Mitte der 1960er Jahre geprägt. In vielen modernen Programmiersprachen (wie Haskell, JavaScript, Smalltalk und insbesondere verschiedenen Lisp-Dialekten wie Scheme) sind alle Funktionen first-class.Einen für Anfänger sehr leicht verständlichen Zugang zu diesem Konzept bietet die bildungsorientierte visuelle Programmiersprache Snap! (BYOB). (de) In computer science, a programming language is said to have first-class functions if it treats functions as first-class citizens. This means the language supports passing functions as arguments to other functions, returning them as the values from other functions, and assigning them to variables or storing them in data structures. Some programming language theorists require support for anonymous functions (function literals) as well. In languages with first-class functions, the names of functions do not have any special status; they are treated like ordinary variables with a function type. The term was coined by Christopher Strachey in the context of "functions as first-class citizens" in the mid-1960s. First-class functions are a necessity for the functional programming style, in which the use of higher-order functions is a standard practice. A simple example of a higher-ordered function is the map function, which takes, as its arguments, a function and a list, and returns the list formed by applying the function to each member of the list. For a language to support map, it must support passing a function as an argument. There are certain implementation difficulties in passing functions as arguments or returning them as results, especially in the presence of non-local variables introduced in nested and anonymous functions. Historically, these were termed the funarg problems, the name coming from "function argument". In early imperative languages these problems were avoided by either not supporting functions as result types (e.g. ALGOL 60, Pascal) or omitting nested functions and thus non-local variables (e.g. C). The early functional language Lisp took the approach of dynamic scoping, where non-local variables refer to the closest definition of that variable at the point where the function is executed, instead of where it was defined. Proper support for lexically scoped first-class functions was introduced in Scheme and requires handling references to functions as closures instead of bare function pointers, which in turn makes garbage collection a necessity. (en) 計算機科学において、第一級関数(だいいっきゅうかんすう、英: first-class function、ファーストクラスファンクション)とは、関数を第一級オブジェクトとして扱うことのできるプログラミング言語の性質、またはそのような関数のことである。その場合その関数は、型のある言語では function type(en:Function type)などと呼ばれる型を持ち、またその値は関数オブジェクトなどになる。具体的にはプログラムの実行時に生成され、データ構造に含めることができ、他の関数の引数として渡したり、戻り値として返したりすることのできる関数をいう。この概念はメタプログラミングとは異なり、コンパイラ呼び出しやeval関数によって生成された関数は含まれない。無名関数も参照。 第一級関数は関数型言語には必要不可欠であり、高階関数のような形で日常的に用いられる。例として、関数とリストを引数に取り、リストの各要素に関数を適用した結果のリストを返すmap (mapcar) 関数が挙げられる。map関数をサポートするプログラミング言語は、何らかの形で関数を関数の引数として渡すことを許容しなければならない。 Schemeでの例: (map func list0 list1 ... listN) スタックベースのプログラミング言語では、高階関数の実装における自由変数の取り扱いに関して困難な問題が生じる。これは("function argument" の略称、英: funarg problem)として知られている。 型理論では、型Aの値を受け取り、型Bの値を返す関数をA → B(もしくはBA)と書く。これはP → Qと似ているが実は同じもので、カリー・ハワード対応(カリー・ハワード同型対応、英: Curry-Howard correspondence)によれば、関数型は論理包含に関係しており、ラムダ抽象は自然演繹における仮説、関数の適用はモーダスポネンスに相当する。また多くのプログラミング言語の機能として、型理論は第一級関数が連想配列などのデータ構造をモデルするのにも用いられる。 圏論においては、第一級関数は閉圏に相当する。たとえば単純型付きラムダ計算(英: simply typed lambda calculus)は、カルテシアン閉圏(デカルト閉圏)の言語に相当する。 (ja) В информатике язык программирования имеет функции первого класса, если он рассматривает функции как объекты первого класса. В частности, это означает, что язык поддерживает передачу функций в качестве аргументов другим функциям, возврат их как результат других функций, присваивание их переменным или сохранение в структурах данных.Некоторые теоретики языков программирования считают необходимым условием также поддержку анонимных функций.В языках с функциями первого класса имена функций не имеют никакого специального статуса, они рассматриваются как обычные значения, тип которых является функциональным.Термин был впервые использован в контексте «функции как объекты первого класса» в середине 1960-х. Функции первого класса являются неотъемлемой частью функционального программирования, в котором использование функций высшего порядка является стандартной практикой. Простым примером функции высшего порядка будет функция Map, которая принимает в качестве своих аргументов функцию и список и возвращает список после применения функции к каждому элементу списка. Чтобы язык программирования поддерживал Map, он должен поддерживать передачу функций как аргумента. Существуют некоторые сложности в реализации передачи функций как аргументов и возвращении их как результата, особенно в присутствии нелокальных переменных, введённых во вложенных и анонимных функциях. Исторически они были названы проблемами фунарга, от английского «function argument».В ранних императивных языках программирования эти проблемы обходились путём отказа от поддержки возвращения функций как результата или отказа от вложенных функций и следовательно нелокальных переменных (в частности, C). Lisp, один из первых функциональных языков программирования, применяет подход динамической области видимости, где нелокальные переменные возвращают ближайшее определение этих переменных к точке, в которой функция была вызвана, вместо точки, в которой она была объявлена. Полноценная поддержка для лексического контекста функций первого порядка была введена в Scheme и предполагает обработку ссылок на функции как замыканий вместо чистых, что, в свою очередь, делает необходимым применение сборки мусора. (ru) Em ciência da computação, diz-se que uma linguagem de programação tem funções de primeira classe se ela trata as funções como cidadãos de primeira classe. Isso significa que a linguagem suporta a passagem de funções como argumentos para outras funções, retornando-as como os valores de outras funções e atribuindo-as a variáveis ​​ou armazenando-as em estruturas de dados. Alguns teóricos da linguagem de programação também requerem suporte para (literais de função). Em linguagens com funções de primeira classe, os nomes das funções não têm nenhum estado especial. Eles são tratados como variáveis ​​comuns com um . O termo foi cunhado por no contexto de "funções como cidadãos de primeira classe" em meados da década de 1960. As funções de primeira classe são uma necessidade para o estilo de programação funcional, no qual o uso de é uma prática padrão. Um exemplo simples de função de ordem superior é a função , que recebe, como seus argumentos, uma função e uma lista, e retorna a lista formada pela aplicação da função a cada membro da lista. Para que uma linguagem suporte map, ela deve suportar a passagem de uma função como um argumento. Existem certas dificuldades de implementação em passar funções como argumentos ou retorná-las como resultados, especialmente na presença de introduzidas em funções aninhadas e . Historicamente, essas dificuldades foram chamados de , o nome vindo de "function argument" (argumento de função, em português). Nas primeiras linguagens imperativas, esses problemas foram evitados por não suportar funções como tipos de resultado (por exemplo, ALGOL 60, Pascal) ou omitir funções aninhadas e, portanto, variáveis ​​não locais (por exemplo, C). A antiga linguagem funcional Lisp adotou a abordagem de , onde variáveis ​​não locais se referem à definição mais próxima daquela variável no ponto onde a função é executada, ao invés de onde ela foi definida. O suporte adequado para funções de primeira classe com escopo léxico foi introduzido em Scheme e requer o tratamento de referências a funções como clausuras em vez de vazios, que, por sua vez, torna a coleta de lixo uma necessidade. (pt) 头等函数(first-class function;第一級函數)是指在程序设计语言中,函数被当作头等公民。这意味着,函数可以作为别的函数的参数、函数的返回值,赋值给变量或存储在数据结构中。 有人主张应包括支持匿名函数(函数字面量,function literals)。在这样的语言中,函数的名字没有特殊含义,它们被当作具有函数类型的普通的变量对待。1960年代中期,克里斯托弗·斯特雷奇在“functions as first-class citizens”中提出这一概念。 头等函数是函数式程序设计所必须的。通常要使用高阶函数。map函数就是一个高阶函数,其实参是一个函数及一个list,返回结果是把作为参数的函数作用于list的每个元素后的结果形成的list。 把函数作为函数参数与函数返回值会遇到特别的困难。特别是存在与、匿名函数。历史上,这被称作。 早期的指令式编程语言,或者不支持函数作为结果类型(如ALGOL 60, Pascal),或者忽略嵌套函数与非局部变量(如C语言)。早期的函数式语言Lisp采取了动态作用域方法,把非局部变量绑定到函数执行点最近的变量定义。Scheme语言支持词法作用域的头等函数,把对函数的引用绑定到闭包(closure)而不是函数指针,这使得垃圾收集成为必须。 (zh) В інформатиці мова програмування має функції першого класу, якщо вона розглядає функції як об'єкти першого класу.Зокрема, це означає, що мова підтримує передачу функцій як аргументів інших функцій, повернення їх як результат інших функцій, присвоювання їх змінним або збереження в структурах даних. Деякі теоретики мов програмування вважають необхідною умовою також підтримку анонімних функцій. У мовах з функціями першого класу імена функцій не мають ніякого спеціального статусу, вони розглядаються як звичайні значення, тип яких є функціональним. Термін був вперше використаний Крістофером Стречі в контексті «функції як об'єкти першого класу» в середині 1960-х. Функції першого класу є невід'ємною частиною функціонального програмування, в якому використання функцій вищого порядку є стандартною практикою. Простим прикладом функції вищого порядку буде функція Map, яка приймає функцію і список як свої аргументи і повертає список, після застосування функції до кожного елементу списку. Щоб мова програмування підтримувала Map, вона повинна підтримувати передачу функцій як аргументу. Існують деякі складності в реалізації передачі функцій як аргументів і повернення їх як результату, особливо за присутності нелокальних змінних, введених у вкладених і анонімних функціях. Історично вони були названі проблемами фунарга, від англійського «function argument». У ранніх імперативних мовах програмування ці проблеми обходилися шляхом відмови від підтримки повернення функцій як результату або відмови від вкладених функцій і отже нелокальних змінних (зокрема, C). Lisp, одна з перших функціональних мов програмування, застосовує підхід динамічної області видимості, де нелокальні змінні повертають найближче визначення цих змінних до точки, у якій функція була викликана, замість точки, у якій вона була оголошена. Повноцінна підтримка для лексичного контексту функцій першого порядку була введена в Scheme і передбачає обробку посилань на функції як замикань замість чистих, що, в свою чергу, робить необхідним застосування збірки сміття. (uk)
dbo:wikiPageExternalLink http://rosettacode.org/wiki/First-class_functions https://web.archive.org/web/20110720102933/http:/lambda.uta.edu/cse5317/l12.ppt http://www.ibm.com/developerworks/linux/library/l-highfunc/index.html
dbo:wikiPageID 1163024 (xsd:integer)
dbo:wikiPageLength 27474 (xsd:nonNegativeInteger)
dbo:wikiPageRevisionID 1098149405 (xsd:integer)
dbo:wikiPageWikiLink dbr:Python_(programming_language) dbr:Rosetta_Code dbr:Ruby_(programming_language) dbr:Scala_(programming_language) dbr:Scheme_(programming_language) dbr:Delphi_(programming_language) dbc:Articles_with_example_Haskell_code dbr:Julia_(programming_language) dbr:Perl dbr:Persistent_data_structure dbr:Upwards_funarg_problem dbr:Defunctionalization dbr:Insertion_sort dbr:Common_Lisp dbr:Mathematica dbr:Rust_(programming_language) dbr:Christopher_Strachey dbr:Clojure dbr:Closed_category dbr:Closure_(computer_science) dbr:Go_(programming_language) dbr:Anonymous_function dbr:Limbo_(programming_language) dbr:Lisp_(programming_language) dbr:Logical_implication dbr:Lua_(programming_language) dbr:MATLAB dbr:ML_(programming_language) dbr:Boilerplate_code dbr:Simply_typed_lambda_calculus dbr:Smalltalk dbr:Closure_(computer_programming) dbr:Compiled_language dbr:Computer_science dbr:Delegate_(CLI) dbr:Funarg_problem dbr:Function_object dbr:Function_type dbr:Functional_programming dbr:Function_pointer dbr:Partial_application dbr:Polymorphism_(computer_science) dbr:Program_counter dbc:Functional_programming dbr:C++ dbr:C++11 dbr:C_(programming_language) dbr:C_Sharp_(programming_language) dbc:Primitive_types dbc:Subroutines dbr:Type_theory dbr:Data_structure dbr:Garbage_collection_(computer_science) dbr:ALGOL_60 dbr:ALGOL_68 dbr:Ada_(programming_language) dbc:Data_types dbr:Curry–Howard_correspondence dbr:Erlang_(programming_language) dbr:F_Sharp_(programming_language) dbr:Fortran dbr:PHP dbr:Pascal_(programming_language) dbr:Fold_(higher-order_function) dbr:Global_variable dbr:Iteration dbr:Kappa_calculus dbr:Source_code dbr:Recursion dbr:Haskell_(programming_language) dbr:Higher-order_function dbr:Io_(programming_language) dbr:JavaScript dbr:Java_(programming_language) dbr:Java_8 dbr:Tcl dbr:Dynamic_scoping dbr:Array_data_structure dbc:Articles_with_example_C_code dbc:Compiler_construction dbc:Programming_language_theory dbr:Blocks_(C_language_extension) dbr:Swift_(programming_language) dbr:Referential_transparency dbr:Modus_ponens dbr:Assignment_(computer_science) dbr:Associative_array dbr:Maple_(software) dbr:IBM_developerWorks dbr:Merge_sort dbr:OCaml dbr:Oberon_(programming_language) dbr:Objective-C dbr:Cartesian_closed_category dbr:Category_theory dbr:Map_(higher-order_function) dbr:Undecidable_problem dbr:Variable_(computer_science) dbr:Nested_function dbr:Newsqueak dbr:Programming_language dbr:Object_code dbr:Eval dbr:First-class_citizen dbr:First-class_message dbr:Man_or_boy_test dbr:Interpreted_language dbr:Non-local_variable dbr:List_(computing) dbr:Dynamically_scoped dbr:Function_(programming) dbr:Lexically_scoped dbr:Dangling_reference dbr:In-place dbr:Intensional_equality dbr:Anonymous_inner_class dbr:Stable_sorting_algorithm dbr:Extensional_equality dbr:Name_(computer_science) dbr:Integer]_->_[Integer dbr:Leonidas_Fegaras dbr:Purity_(computer_science) dbr:Reference_equality
dbp:wikiPageUsesTemplate dbt:Further_information dbt:Main dbt:No dbt:Partial dbt:Reflist dbt:Short_description dbt:Slink dbt:Yes dbt:Data_types
dcterms:subject dbc:Articles_with_example_Haskell_code dbc:Functional_programming dbc:Primitive_types dbc:Subroutines dbc:Data_types dbc:Articles_with_example_C_code dbc:Compiler_construction dbc:Programming_language_theory
rdf:type yago:WikicatSubroutines yago:Abstraction100002137 yago:Code106355894 yago:CodingSystem106353757 yago:Communication100033020 yago:Writing106359877 yago:WrittenCommunication106349220 yago:Routine106582403 yago:Software106566077
rdfs:comment 头等函数(first-class function;第一級函數)是指在程序设计语言中,函数被当作头等公民。这意味着,函数可以作为别的函数的参数、函数的返回值,赋值给变量或存储在数据结构中。 有人主张应包括支持匿名函数(函数字面量,function literals)。在这样的语言中,函数的名字没有特殊含义,它们被当作具有函数类型的普通的变量对待。1960年代中期,克里斯托弗·斯特雷奇在“functions as first-class citizens”中提出这一概念。 头等函数是函数式程序设计所必须的。通常要使用高阶函数。map函数就是一个高阶函数,其实参是一个函数及一个list,返回结果是把作为参数的函数作用于list的每个元素后的结果形成的list。 把函数作为函数参数与函数返回值会遇到特别的困难。特别是存在与、匿名函数。历史上,这被称作。 早期的指令式编程语言,或者不支持函数作为结果类型(如ALGOL 60, Pascal),或者忽略嵌套函数与非局部变量(如C语言)。早期的函数式语言Lisp采取了动态作用域方法,把非局部变量绑定到函数执行点最近的变量定义。Scheme语言支持词法作用域的头等函数,把对函数的引用绑定到闭包(closure)而不是函数指针,这使得垃圾收集成为必须。 (zh) Eine First-Class-Funktion (englisch first-class function, deutsch etwa „Funktion erster Klasse“) bezeichnet in der Programmierung eine Funktion, die * einer anderen Funktion als Argument übergeben, * von einer anderen Funktion als Wert zurückgegeben, * einer Variablen zugewiesen, * in einer Datenstruktur gespeichert und * zur Laufzeit erzeugt werden kann.Teilweise gilt auch die Möglichkeit, anonyme Funktionen zu definieren, als Kriterium für eine first-class-Funktion. Erst damit wird es möglich, Closures zu erzeugen, anonyme Funktionen zu definieren oder Currying durchzuführen. (de) In computer science, a programming language is said to have first-class functions if it treats functions as first-class citizens. This means the language supports passing functions as arguments to other functions, returning them as the values from other functions, and assigning them to variables or storing them in data structures. Some programming language theorists require support for anonymous functions (function literals) as well. In languages with first-class functions, the names of functions do not have any special status; they are treated like ordinary variables with a function type. The term was coined by Christopher Strachey in the context of "functions as first-class citizens" in the mid-1960s. (en) 計算機科学において、第一級関数(だいいっきゅうかんすう、英: first-class function、ファーストクラスファンクション)とは、関数を第一級オブジェクトとして扱うことのできるプログラミング言語の性質、またはそのような関数のことである。その場合その関数は、型のある言語では function type(en:Function type)などと呼ばれる型を持ち、またその値は関数オブジェクトなどになる。具体的にはプログラムの実行時に生成され、データ構造に含めることができ、他の関数の引数として渡したり、戻り値として返したりすることのできる関数をいう。この概念はメタプログラミングとは異なり、コンパイラ呼び出しやeval関数によって生成された関数は含まれない。無名関数も参照。 第一級関数は関数型言語には必要不可欠であり、高階関数のような形で日常的に用いられる。例として、関数とリストを引数に取り、リストの各要素に関数を適用した結果のリストを返すmap (mapcar) 関数が挙げられる。map関数をサポートするプログラミング言語は、何らかの形で関数を関数の引数として渡すことを許容しなければならない。 Schemeでの例: (map func list0 list1 ... listN) (ja) Em ciência da computação, diz-se que uma linguagem de programação tem funções de primeira classe se ela trata as funções como cidadãos de primeira classe. Isso significa que a linguagem suporta a passagem de funções como argumentos para outras funções, retornando-as como os valores de outras funções e atribuindo-as a variáveis ​​ou armazenando-as em estruturas de dados. Alguns teóricos da linguagem de programação também requerem suporte para (literais de função). Em linguagens com funções de primeira classe, os nomes das funções não têm nenhum estado especial. Eles são tratados como variáveis ​​comuns com um . O termo foi cunhado por no contexto de "funções como cidadãos de primeira classe" em meados da década de 1960. (pt) В информатике язык программирования имеет функции первого класса, если он рассматривает функции как объекты первого класса. В частности, это означает, что язык поддерживает передачу функций в качестве аргументов другим функциям, возврат их как результат других функций, присваивание их переменным или сохранение в структурах данных.Некоторые теоретики языков программирования считают необходимым условием также поддержку анонимных функций.В языках с функциями первого класса имена функций не имеют никакого специального статуса, они рассматриваются как обычные значения, тип которых является функциональным.Термин был впервые использован в контексте «функции как объекты первого класса» в середине 1960-х. (ru) В інформатиці мова програмування має функції першого класу, якщо вона розглядає функції як об'єкти першого класу.Зокрема, це означає, що мова підтримує передачу функцій як аргументів інших функцій, повернення їх як результат інших функцій, присвоювання їх змінним або збереження в структурах даних. Деякі теоретики мов програмування вважають необхідною умовою також підтримку анонімних функцій. У мовах з функціями першого класу імена функцій не мають ніякого спеціального статусу, вони розглядаються як звичайні значення, тип яких є функціональним. Термін був вперше використаний Крістофером Стречі в контексті «функції як об'єкти першого класу» в середині 1960-х. (uk)
rdfs:label First-Class-Funktion (de) First-class function (en) 第一級関数 (ja) Функции первого класса (ru) Função de primeira classe (pt) 头等函数 (zh) Функція першого класу (uk)
owl:sameAs freebase:First-class function yago-res:First-class function wikidata:First-class function dbpedia-de:First-class function dbpedia-fa:First-class function dbpedia-ja:First-class function dbpedia-pt:First-class function dbpedia-ru:First-class function dbpedia-sr:First-class function http://ta.dbpedia.org/resource/முதல்_வகுப்புச்_செயலி dbpedia-uk:First-class function dbpedia-zh:First-class function https://global.dbpedia.org/id/MTEd
prov:wasDerivedFrom wikipedia-en:First-class_function?oldid=1098149405&ns=0
foaf:isPrimaryTopicOf wikipedia-en:First-class_function
is dbo:wikiPageRedirects of dbr:First-class_functions dbr:First-class_procedure dbr:First_Class_Functions dbr:First_class_function dbr:First_class_functions dbr:First_class_procedure dbr:First_class_procedures dbr:Function_reference
is dbo:wikiPageWikiLink of dbr:Scheme_(programming_language) dbr:Boo_(programming_language) dbr:Perl dbr:Index_of_object-oriented_programming_articles dbr:List_of_programming_languages_for_artificial_intelligence dbr:Timeline_of_United_States_inventions_(after_1991) dbr:Common_Lisp dbr:Python_syntax_and_semantics dbr:Chris_Lattner dbr:Clojure dbr:Glossary_of_computer_science dbr:Miranda_(programming_language) dbr:Cons dbr:Continuation-passing_style dbr:Anonymous_function dbr:Lisp_(programming_language) dbr:Lua_(programming_language) dbr:ML_(programming_language) dbr:Call_graph dbr:Callable_object dbr:Closure_(computer_programming) dbr:Command_pattern dbr:Funarg_problem dbr:Function_composition_(computer_science) dbr:Function_object dbr:Function_type dbr:Functional_programming dbr:Polish_notation dbr:Strategy_pattern dbr:Type_signature dbr:Fexpr dbr:First-class_functions dbr:Nim_(programming_language) dbr:Primitive_data_type dbr:Procedural_programming dbr:Purely_functional_programming dbr:Record_(computer_science) dbr:Higher-order_function dbr:JavaScript dbr:Covariance_and_contravariance_(computer_science) dbr:First_class dbr:APL_syntax_and_symbols dbr:K_(programming_language) dbr:Lambda_calculus dbr:Arrow_(computer_science) dbr:Racket_(programming_language) dbr:Loose_coupling dbr:Map_(higher-order_function) dbr:Scope_(computer_science) dbr:Lout_(software) dbr:Parser_combinator dbr:Procedural_parameter dbr:First-class_citizen dbr:First-class_message dbr:System_U dbr:Non-local_variable dbr:PHP_syntax_and_semantics dbr:POP-11 dbr:First-class_procedure dbr:First_Class_Functions dbr:First_class_function dbr:First_class_functions dbr:First_class_procedure dbr:First_class_procedures dbr:Function_reference
is foaf:primaryTopic of wikipedia-en:First-class_function