LINUX.ORG.RU

История изменений

Исправление Moisha_Liberman, (текущая версия) :

те фичи, которые в других языках были ещё 20-30 лет назад, в C++ только сейчас заносят.

Если даже говорить о С, то в 1997г. в Addison-Wesley вышла книга под названием «Functional C». Если надо, то обмазаться с ног до головы можно здесь https://research.utwente.nl/files/5128727/book.pdf. Тут версия 6.8 данной книги. Так что, всё что нужно, уже занесли. И давно. Другое дело, что не стали добавлять в стандарт, т.к. кому-то всё это нужно, а кому-то нет. Хотя, лично мне кажется что отдельные идеи из парадигмы ФП просто обязаны в ряде случаев использоваться программистом. Как минимум, он должен предпринимать действия для уменьшения side effect тогда проблем с потокобезопасностью будет меньше (ну чисто примера ради).

Хотя, и gcc тоже развивается. Например, для чистых функций уже ввели attribute ((_pure__)). Т.е., если возвращаемый результат ф-ии не имеет side effect и зависит от глобальных переменных или своих аргументов, то такая ф-я может быть помечена как чистая и оптимизатор gcc займётся ею отдельно.

Заносить это всё и чохом в стандарт языка? А зачем? Кому-то пригодятся green threads, а кто-то пищит от корутинов. Хотя, язык как таковой позволяет иметь реализации и того и другого, но только для своих, частных случаев. Надо? Ну так напишите и используйте или используйте уже написанное (гуглится и то и другое).

Но учить для этих вещей отдельный, новый язык, а то и несколько или всё тащить в стандарт, по-моему, это несколько не рационально. Гораздо дешевле по-моему, в пределах одного языка находить нужное.

Исходная версия Moisha_Liberman, :

Вообще-то, не совсем так.

те фичи, которые в других языках были ещё 20-30 лет назад, в C++ только сейчас заносят.

Если даже говорить о С, то в 1997г. в Addison-Wesley вышла книга под названием «Functional C». Если надо, то обмазаться с ног до головы можно здесь https://research.utwente.nl/files/5128727/book.pdf. Тут версия 6.8 данной книги. Так что, всё что нужно, уже занесли. И давно. Другое дело, что не стали добавлять в стандарт, т.к. кому-то всё это нужно, а кому-то нет. Хотя, лично мне кажется что отдельные идеи просто обязаны в ряде случаев использоваться программистом. Как минимум, он должен предпринимать действия для уменьшения side effect тогда проблем с потокобезопасностью будет меньше (ну чисто примера ради).

Хотя, и gcc тоже развивается. Например, для чистых функций уже ввели attribute ((_pure__)). Т.е., если возвращаемый результат ф-ии не имеет side effect и зависит от глобальных переменных или своих аргументов, то такая ф-я может быть помечена как чистая и оптимизатор gcc займётся ею отдельно.

Заносить это всё и чохом в стандарт языка? А зачем? Кому-то пригодятся green threads, а кто-то пищит от корутинов. Хотя, язык как таковой позволяет иметь реализации и того и другого, но только для своих, частных случаев. Надо? Ну так напишите и используйте или используйте уже написанное (гуглится и то и другое).

Но учить для этих вещей отдельный, новый язык, а то и несколько или всё тащить в стандарт, по-моему, это несколько не рационально. Гораздо дешевле по-моему, в пределах одного языка находить нужное.