powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Помогите разобраться с определением из функционального программирования
7 сообщений из 7, страница 1 из 1
Помогите разобраться с определением из функционального программирования
    #38454865
unicornmirage
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет всем.

Читаю литературу по ФП, наткнулся на такую строку:

авторIt’s important to understand what is meant by function here. A function relates
every value of the domain (the input) to exactly one value of the codomain (the out-
put). Figure 1.1 depicts a function that maps values of type X to exactly one value of Y.

Рисунок там примерно такой:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
 
 ---X--                     ---Y--
|        |                  |    |
|   1 -----------------------> a | 
|        |                  |    |     
|   2 -----------------------> b |
|        |                  |    |
|   3 -----------------------> c |
|        |                  |    |  
 -------                    -------     



Вроде как перевёл: "Функция связывает каждое значение области (the input) с непосредственно одним значением из области значений (the output) Рисунок 1.1 изображает
функцию, которая маппит (отображает) знаяения из типа X к непосредственно каждому значению Y".

Я пока что то не понял до конца этот смысл. Мне представляется функция:

function foo(X) {
return Y;
}

Либо здесь идет речь об объектах в качестве параметра?
Вобщем прошу помочь пояснить этот вопрос.
...
Рейтинг: 0 / 0
Помогите разобраться с определением из функционального программирования
    #38454897
Фотография Яростный Меч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
unicornmirage,

суть "функции" в том, что каждому значению из множества Х соответствует только одно значение из Y (либо ни одного).
возьми, к примеру, sin(x) - там любому числу из множества R (действительные числа) соответствует разультат функции (тоже из R)
...
Рейтинг: 0 / 0
Помогите разобраться с определением из функционального программирования
    #38454911
unicornmirage
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Яростный Меч,

о, так теперь понятнее. Спасибо!

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

Значит - если вдруг окажется, что для какого-то входного значения будет в другой момент времени - другой результат, то такая ситуация говорит уже о наличие side-эффекта. Поэтому это уже не функциональное программирование.
...
Рейтинг: 0 / 0
Помогите разобраться с определением из функционального программирования
    #38455121
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
unicornmirageЗначит - если вдруг окажется, что для какого-то входного значения будет в другой момент времени - другой результат, то такая ситуация говорит уже о наличие side-эффекта. Поэтому это уже не функциональное программирование.Такая ситуация просто невозможна.
А если тебе нужно чтобы в один момент времени было один результат, а в другой момент другой результат. То значит этот самый "момент времени" будет являться одним из параметров функции. И ты будешь явно его вызывать. Например так:
Код: sql
1.
let Y = foo(X, Clock())
...
Рейтинг: 0 / 0
Помогите разобраться с определением из функционального программирования
    #38455780
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White OwlТо значит этот самый "момент времени" будет являться одним из параметров функции.или можно для этого построить что-то вроде монады ЙО.
...
Рейтинг: 0 / 0
Помогите разобраться с определением из функционального программирования
    #38479530
unicornmirage
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White OwlunicornmirageЗначит - если вдруг окажется, что для какого-то входного значения будет в другой момент времени - другой результат, то такая ситуация говорит уже о наличие side-эффекта. Поэтому это уже не функциональное программирование.Такая ситуация просто невозможна.
А если тебе нужно чтобы в один момент времени было один результат, а в другой момент другой результат. То значит этот самый "момент времени" будет являться одним из параметров функции. И ты будешь явно его вызывать. Например так:
Код: sql
1.
let Y = foo(X, Clock())



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

Получается - если при одних и тех же значениях, переданных в ф-цию, получаются разные результаты - то мы имеем дело с недетерменированным автоматом.

Пока еще не разобрался, как с этим обстоит дело в ФП.
...
Рейтинг: 0 / 0
Помогите разобраться с определением из функционального программирования
    #38480640
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
unicornmirageЕще вспомнил - про недетерменированные автоматы - на всякий случай запишу в этой теме, чтобы не забыть, т.к. это как то связанно.

Получается - если при одних и тех же значениях, переданных в ф-цию, получаются разные результаты - то мы имеем дело с недетерменированным автоматом.

Пока еще не разобрался, как с этим обстоит дело в ФП.Никак. В том-то и фишка ФП парадигмы что там не может быть недетерминированной функции.
А если у тебя есть NFA и ты его хочешь изобразить в ФП, то просто конвертируешь свой NFA в DFA и получаешь готовый шаблон для ФП.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Помогите разобраться с определением из функционального программирования
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]