The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Google обязал применять инклюзивную терминологию в своих открытых проектах, opennews (??), 10-Ноя-20, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


20. "Google обязал применять инклюзивную терминологию в своих отк..."  +7 +/
Сообщение от Аноним (90), 10-Ноя-20, 23:31 
first class citizen, к слову, тоже нифига не мапится в top level.

Вот, допустим, first-class functions по определению, являются first-class citizen. Если убрать этот термин, и делать top-level functions, это нифига не отражает суть, что в языке можно передавать функции как аргументы и возвращать их из функций.

А top-level functions скорее подходит для описания scope функции.

Ответить | Правка | Наверх | Cообщить модератору

53. "Google обязал применять инклюзивную терминологию в своих отк..."  –3 +/
Сообщение от Lex (??), 11-Ноя-20, 00:23 
> это нифига не отражает суть, что в языке можно передавать функции как аргументы и возвращать их из функций.

А first-class прямо однозначно говорит именно об этом ?

Лично я бы, глядя на этот термин впервые, вообще бы никогда не подумал, что он обозначаем именно ЭТО.

Ответить | Правка | Наверх | Cообщить модератору

60. "Google обязал применять инклюзивную терминологию в своих отк..."  +3 +/
Сообщение от Аноним (90), 11-Ноя-20, 00:33 
Это хотя бы говорит о том, что это свойство функции + реально очень старая терминология, которую многие знают.

В случае с top-level function, полагаю, у 95% первая ассоциация будет с местом определения функции или scope. Т.к. догадаться, что top-level, это свойство функций и их обработки языком программирования почти нереально.

В случае с функциями первого класса из самого определения можно догадаться, что это делает функции "привилегированными" в каком-то смысле. В данном случае это означает, что можно присваивать функции переменным и передавать как значения.

Ответить | Правка | Наверх | Cообщить модератору

375. "Google обязал применять инклюзивную терминологию в своих отк..."  –1 +/
Сообщение от Lex (??), 12-Ноя-20, 12:53 
> Это хотя бы говорит о том, что это свойство функции + реально
> очень старая терминология, которую многие знают.

Ну-ну.

Функции первого класса на фоне бесчинства ООП отсылают лишь к мыслям о какой-то функции какого-то «первого» или исходного класса..
Либо - к аналогам компонентов высшего порядка ( high-order ) вперемешку с функциональщиной
А тут - оказывается, вообще про какие-то «привелегии» у функций, суть которых - (!) в возможности присваивания функций переменным.

Это абсолютно неочевидно.

Ответить | Правка | Наверх | Cообщить модератору

384. "Google обязал применять инклюзивную терминологию в своих отк..."  +1 +/
Сообщение от n00by (ok), 12-Ноя-20, 14:57 
>> Это хотя бы говорит о том, что это свойство функции + реально
>> очень старая терминология, которую многие знают.
> Ну-ну.
> Функции первого класса на фоне бесчинства ООП отсылают лишь к мыслям о
> какой-то функции какого-то «первого» или исходного класса..

Такие функции были ещё в LISP. ООП и Smalltalk появились позже. Так что "бесчинство" рядом с "фоном" весьма кстати.

Ответить | Правка | Наверх | Cообщить модератору

204. "Google обязал применять инклюзивную терминологию в своих отк..."  +/
Сообщение от Аноним (193), 11-Ноя-20, 11:32 
> А first-class прямо однозначно говорит именно об этом ?

"first-class" - нет, а "first" - еще меньше. А вот если термин полностью (а не как Вы кусок выдрали) - "first class citizen" - сразу всё определяет однозначно (для большинства, не для Вас).

Ответить | Правка | К родителю #53 | Наверх | Cообщить модератору

301. "Google обязал применять инклюзивную терминологию в своих отк..."  +/
Сообщение от Ordu (ok), 11-Ноя-20, 17:31 
> Вот, допустим, first-class functions по определению, являются first-class citizen. Если
> убрать этот термин, и делать top-level functions, это нифига не отражает
> суть, что в языке можно передавать функции как аргументы и возвращать
> их из функций.

Всё ещё забавнее. first-class функции -- это не про то, можно ли функции передавать как аргументы, их как аргументы можно передавать и в C, и в asm, это не делает функции в этих языках first-class объектами. first-class, это в смысле функция становится обычным значением, для которого есть синтаксис для описания этого значения в любом месте кода, где можно описать значение: целое число, строка, массив, структура легко определяются "inline". Это как если бы в C, везде где можно было бы написать (struct foo){.name = "hello", .value = "world"}, можно было бы написать и определение функции тоже, которое стало бы значением, которое тут же и было бы присвоено переменной или передано в функцию или возвращено из неё. В C так нельзя, поэтому в C структуры являются first-class citizen'ами, а функции -- нет.

То есть fist-class функции это как раз ровно наоборот по сравнению с top-level, first-class -- это когда есть синтаксис для безымянных не-top-level функций.

Ответить | Правка | К родителю #20 | Наверх | Cообщить модератору

367. "Google обязал применять инклюзивную терминологию в своих отк..."  +/
Сообщение от psvemail (??), 12-Ноя-20, 08:55 
а вы уверены, что названное вами это не "анонимные функции"
Ответить | Правка | Наверх | Cообщить модератору

368. "Google обязал применять инклюзивную терминологию в своих отк..."  +/
Сообщение от Ordu (ok), 12-Ноя-20, 09:22 
> а вы уверены, что названное вами это не "анонимные функции"

Нет, не уверен. Даже наоборот, я уверен, что это анонимные функции. Но до тех пор, пока у тебя нет анонимных функций в языке, ты не сможешь говорить о том, что функции у тебя first-class citizen'ы. У тебя в языке есть анонимные целые числа? Анонимные float'ы? Анонимные строки? Анонимные инстансы структур? Другие анонимные значения? Есть ведь, так? Но если функция не может быть анонимным значением, то она не будет first-class citizen'ом.

Я не возьмусь утверждать, что анонимных функций достаточно для того, чтобы заявлять о том, что функции first-class объекты, но а) они совершенно определённо необходимы, и б) в любом случае это очень неплохой эвристический тест языка на первоклассность функций, который редко ошибается (может и никогда) -- если в языке есть анонимные функции, значит функции там граждане первого сорта.

Ответить | Правка | Наверх | Cообщить модератору

386. "Google обязал применять инклюзивную терминологию в своих отк..."  +/
Сообщение от n00by (ok), 12-Ноя-20, 15:00 
> а вы уверены, что названное вами это не "анонимные функции"


/* "Анонимная функция" (согласно тезису Чёрча-Тьюринга) на языке Си
   вызывающая себя рекурсивно.
   Не является первоклассным выражением.
*/
for (;;) {

}


Ответить | Правка | К родителю #367 | Наверх | Cообщить модератору

414. "Google обязал применять инклюзивную терминологию в своих отк..."  +1 +/
Сообщение от Аноним (90), 12-Ноя-20, 22:41 
Ну, всё же в C можно не "передавать функции как аргументы", а передавать поинтеры на длиннотипы с сигнатурой функции. Да, это похоже и позволяет делать аналогичные вещи, но всё-таки в языках с first-class functions передавать можно любые функции, и даже с произвольными сигнатурами.
Ответить | Правка | К родителю #301 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру