Форум программистов, компьютерный форум, киберфорум
Haskell
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
21 / 19 / 6
Регистрация: 25.11.2017
Сообщений: 708
1

Что значит частичное применение функции?

24.10.2018, 22:01. Показов 961. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Haskell
1
(max 5) 43
Можете подсказать почему 43?

Добавлено через 6 минут
Haskell
1
(div 4) 2
Подскажите как работает частичное применения функции. Ведь функция применена к одному аргументу к значению которое в скобке или я ошибаюсь?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.10.2018, 22:01
Ответы с готовыми решениями:

Частичное применение функции
Здравствуйте. Напишите функцию partial(fn, a1, a2, ....), которая позволяет зафиксировать один...

Что значит rt и wt в функции fopen?
Что значит rt и wt в функции fopen? /* Открытие входного файла */ printf("%s",sPI);...

Что значит & и * в параметрах функции?
Задача 1. Напишите функцию f(double& a, double& b, double c, double q), которая возвращает катеты...

Что значит такое обозначение функции?
Здравствуйте. В университете дали задание,которое звучит так: Доказать,что следующая функция...

8
Фрилансер
3705 / 2077 / 567
Регистрация: 31.05.2009
Сообщений: 6,683
24.10.2018, 23:21 2
Берем функцию с двумя, например, аргументами.
Если применяем к двум аргументам - получаем сразу результат.
Если применяем к одному аргументу - получаем новую функцию, уже от одного (оставшегося) аргумента.

Добавлено через 2 минуты
Код
> f = (+ 2)
> f 3
5
> f 5
7
Добавлено через 1 минуту
Цитата Сообщение от Andy_Coldfield Посмотреть сообщение
Можете подсказать почему 43?
А сколько должно быть? Максимум из 5 и 43 как раз 43
1
21 / 19 / 6
Регистрация: 25.11.2017
Сообщений: 708
24.10.2018, 23:52  [ТС] 3
Black Fregat, то есть я правильно понял максимум от пяти пять и потом получившееся значение функции макс применяем к оставшемуся аргументу?
0
Эксперт функциональных языков программированияЭксперт Java
4486 / 2721 / 485
Регистрация: 28.04.2012
Сообщений: 8,590
25.10.2018, 00:24 4
Цитата Сообщение от Andy_Coldfield Посмотреть сообщение
то есть я правильно понял максимум от пяти пять
Нет, не правильно. Максимум от пяти — функция от x, вычисляющая максимум от пяти и x.

Добавлено через 4 минуты
Цитата Сообщение от Black Fregat Посмотреть сообщение
Берем функцию с двумя, например, аргументами.
Ну, если точнее, то функций с двумя аргументами не бывает.

Andy_Coldfield,
Haskell
1
2
max :: Int -> Int -> Int
max x y = if x < y then x else y
то же самое, что
Haskell
1
2
max :: Int -> (Int -> Int)
max x = \y -> if x < y then x else y
соответственно
Haskell
1
2
max 5 == \y -> if 5 < y then 5 else y
(max 5) 43 == (\y -> if 5 < y then 5 else y) 43
2
Фрилансер
3705 / 2077 / 567
Регистрация: 31.05.2009
Сообщений: 6,683
25.10.2018, 00:29 5
Andy_Coldfield, не совсем. Частичное применение функции не означает каких-то вычислений. Скорее это нужно понимать так, что новая функция запоминает внутри себя значение первого аргумента. А вычисления начнутся тогда, когда будет задан и второй аргумент
4
Антикодер
1804 / 869 / 48
Регистрация: 15.09.2012
Сообщений: 3,081
25.10.2018, 05:45 6
learnyouahaskell.com/higher-order-functions
1
Эксперт 1С
843 / 606 / 211
Регистрация: 24.07.2013
Сообщений: 2,102
25.10.2018, 07:32 7
Andy_Coldfield, Частичное применение функции - это определение новой функции с меньшим количество аргументов.
Haskell
1
f x = max 5
это тоже самое, если определить такую функцию
Haskell
1
g x = max 5 x
1
Фрилансер
3705 / 2077 / 567
Регистрация: 31.05.2009
Сообщений: 6,683
25.10.2018, 09:10 8
Tklwegsd, только уж
Haskell
1
f = max 5
3
21 / 19 / 6
Регистрация: 25.11.2017
Сообщений: 708
25.10.2018, 11:39  [ТС] 9
Спасибо большое, все понятно
0
25.10.2018, 11:39
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.10.2018, 11:39
Помогаю со студенческими работами здесь

Что значит var в параметрах функции
Что значит var в парнаметрах функции, для чего она там? и что изменится если убрать var? function...

Что значит 2-й параметр функции OpenFile?
Какие значения он может принимать и что каждое значение значит.

что значит : после объявления функции
class SimpleFactory { public function createBicycle(): Bicycle { return new...

Что значит знак ~ перед именем функции?
Что значит знак ~ перед именем функции? И что он значит вообще?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru