Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Общие вопросы по программированию, компьютерный форум
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.07.2018, 09:00   #11
Vladimir.1982
Форумчанин
 
Регистрация: 30.04.2018
Сообщений: 171
По умолчанию

Цитата:
Сообщение от Alar Посмотреть сообщение
Это как такое может быть? функции везде функции.
Передал параметры, получил результ. всё, дальше делай с ним что хочешь.
Вот лекция про функциональное программирование.

https://www.youtube.com/watch?v=FDGqNxJnbbQ&t=2s
Vladimir.1982 вне форума Ответить с цитированием
Старый 26.07.2018, 09:42   #12
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от Alar Посмотреть сообщение
Открываю английскую википедию, что вам советую делать всегда не оглядываясь на русскую.

Цитата:
Function object, or functor or functionoid, a concept of object-oriented programming
Всё понятно и без перевода. Функция это функция, кто бы сомневался ))

https://en.wikipedia.org/wiki/Function_object
Саша, Вы открыли на английском статью про ДРУГОЕ.

Если Вас интересует функция, как подпрограмма, то статья - вот - https://en.wikipedia.org/wiki/Subroutine

а то, что Вы открыли - это
Цитата:
Функциональный объект
(В компьютерном программировании объект функции [a] представляет собой конструкцию, позволяющую вызвать или вызвать объект, как если бы он был обычной функцией , обычно с тем же синтаксисом (параметр функции, который также может быть функцией). Функциональные объекты часто называют функторами.)
Это другое
Serge_Bliznykov вне форума Ответить с цитированием
Старый 26.07.2018, 09:44   #13
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от Alar Посмотреть сообщение
подпрограмма - это не функция.
Код:
void FuFu()
{
  ....
}
FuFu - это подпрограмма? или это функция?
Serge_Bliznykov вне форума Ответить с цитированием
Старый 26.07.2018, 10:32   #14
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Цитата:
Сообщение от Vladimir.1982 Посмотреть сообщение
Haskell в моде.
Окамл, кложа и т.п. думаю более популярные.

Ну и всякие элементы из ФП приходят в почти все современные ЯП, например map/filter/reduce, лямбда-функции.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.

Последний раз редактировалось Alex11223; 26.07.2018 в 10:41.
Alex11223 вне форума Ответить с цитированием
Старый 26.07.2018, 11:30   #15
Vladimir.1982
Форумчанин
 
Регистрация: 30.04.2018
Сообщений: 171
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
Ну и всякие элементы из ФП приходят в почти все современные ЯП
В Java есть?
Vladimir.1982 вне форума Ответить с цитированием
Старый 26.07.2018, 12:14   #16
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от Vladimir.1982 Посмотреть сообщение
В Java есть?
да вроде бы да.
вот, например, с версии 8 есть лямбда-функции.
http://tutorials.jenkov.com/java/lam...pressions.html
Serge_Bliznykov вне форума Ответить с цитированием
Старый 26.07.2018, 13:04   #17
Alar
Александр
Администратор
 
Аватар для Alar
 
Регистрация: 28.10.2006
Сообщений: 17,758
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
Саша, Вы открыли на английском статью про ДРУГОЕ.

Если Вас интересует функция, как подпрограмма, то статья - вот - https://en.wikipedia.org/wiki/Subroutine
Я дал ссылку на то что хотел, так как именно объект можно передать в качестве параметра, что активно и применяется в ооп, что я показал в примерах на си из статьи и на паскале, делфи из интернетов.

да и писал ночью забыл вставить ссылку на функции на английском, сейчас исправил.

Цитата:
Открываю английскую википедию, что вам советую делать всегда не оглядываясь на русскую.

https://en.wikipedia.org/wiki/Function

Цитата:
Function object, or functor or functionoid, a concept of object-oriented programming
В статье на https://en.wikipedia.org/wiki/Function

находим ссылку Function object, or functor or functionoid, a concept of object-oriented programming

https://en.wikipedia.org/wiki/Function_object

и переходим по нему

А Subroutine, also called a function, a sequence of instructions within a larger computer program

Subroutine - это совершенно другое. sub - это дополнительное. очевидно что это под программа и это именно процедура и меня это не интересует.

void - это процедура в си

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
лямбда-функции.
Зачем вы усложняете, функциями удобнее писать всё, я вам специально дал примеры сортировок через функции.
Alar вне форума Ответить с цитированием
Старый 26.07.2018, 13:41   #18
Alar
Александр
Администратор
 
Аватар для Alar
 
Регистрация: 28.10.2006
Сообщений: 17,758
По умолчанию

Хотя я понял к чему вы клоните, что раньше процедура называли тоже функцией и им было норм, хотя в той же статье в википедии пишет именно так

Цитата:
Subprograms may be defined within programs, or separately in libraries that can be used by multiple programs. In different programming languages, a subroutine may be called a procedure, a function, a routine, a method, or a subprogram.
гугл транслейт
Цитата:
Подпрограммы могут быть определены в программах или отдельно в библиотеках, которые могут использоваться несколькими программами. В разных языках программирования подпрограмма может быть названа процедурой, функцией, подпрограммой, методом или подпрограммой.
Тут получается такой вывод, что функция является подпрограммой, но подрограмма не является функцией.


Цитата:
In programming languages such as C, C++, and C#, subroutines may also simply be called functions, not to be confused with mathematical functions or functional programming, which are different concepts.
Цитата:
В языках программирования, таких как C, C ++ и C #, подпрограммы можно также просто называть функциями, а не путать с математическими функциями или функциональным программированием, которые являются разными понятиями.
Цитата:
Сообщение от Alar Посмотреть сообщение
функция - это не подпрограмма.
Но я с этим не соглашусь. Функция сейчас это функция. Одно дело как деды говорили, другое дело мы должны понимать что подпрограмма - это то что запустил, отработало и хорошо. А функция используется для передачи параметров и получения результата. подпрограммы могут работать независимо друг от друга и в том числе одновременно. Функция же используется лишь как функция - получила параметры, обработала их, возвратила результат. всё.

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

Функция работает внутри себя и не может влиять на глобальные переменные, хотя может их использовать для расчётов.
Alar вне форума Ответить с цитированием
Старый 26.07.2018, 14:25   #19
MihalNik
МегаМодератор
СуперМодератор
 
Регистрация: 27.11.2012
Сообщений: 5,723
По умолчанию

Цитата:
Сообщение от Alar Посмотреть сообщение
функции везде функции.
Передал параметры, получил результ. всё, дальше делай с ним что хочешь.
Нет.

Цитата:
Сообщение от Alar Посмотреть сообщение
функция является подпрограммой, но подрограмма не является функцией.
Да, хотя зависит от языка.

Цитата:
Сообщение от Alar Посмотреть сообщение
Функция работает внутри себя и не может влиять на глобальные переменные, хотя может их использовать для расчётов.
Для устранения неоднозначностей функции, не изменяющие внешнего контекста, называются "чистыми".
Но в большинстве ФП-языков все параметры придётся передавать явно внутрь и тем более нельзя вложить подпрограммы как в Паскале.
+ дополнительное словоплётство от необходимости ввода/вывода, когда контекст всё-таки меняется.
Благими намерениями устлана дорога на programmersforum.ru

Последний раз редактировалось MihalNik; 26.07.2018 в 14:42.
MihalNik вне форума Ответить с цитированием
Старый 26.07.2018, 14:37   #20
Alar
Александр
Администратор
 
Аватар для Alar
 
Регистрация: 28.10.2006
Сообщений: 17,758
По умолчанию

Цитата:
Сообщение от MihalNik Посмотреть сообщение
называются "чистыми".
что-то я ничего не надагдаггоуил по терминологии clean functions
Alar вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Что такое бизнес процессы и зачем они нужны, технологический процесс как более общее понятие. или перевод википедии на русском врёт. Alar Свободное общение 22 24.09.2017 00:02
Какие языки программирование нужны чтоб создать такой сайт nasha-shkola2.ru ja-va Свободное общение 3 19.09.2009 14:36
какие языки программирования и базы использовать? кто выпил мое пиво Помощь студентам 1 24.01.2009 13:45
Какие языки программирования вы изучали? LAN Свободное общение 3 10.11.2007 11:18