Форум программистов, компьютерный форум CyberForum.ru

Каррирование или карринг - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Принадлежность точки заштрихованной области http://www.cyberforum.ru/cpp-beginners/thread451208.html
создать программу, которая проверяет принадлежность точки заштрихованной области. помогите кому не трудно. http://s018.***********/i512/1202/d5/82b2190b05ec.png
C++ Простая, но объемная прога. Обработка текста на с++ (различные виды сортировки слов) Сам файл с которого происходит считывание вложен. Само задание выглядит так: Программа должна открыть файл Go.txt и считать с него текстовую информацию в виде отдельных слов. Запомнить данные в классе в виде массива слов . Отсортировать массив по алфавиту. После этого проверить элементы массива – если слова повторяются несколько раз, то элементы дубли надо удалить, но запомнить для слова... http://www.cyberforum.ru/cpp-beginners/thread451205.html
C++ Списки
вопрос, в каких случаях используют односвязный список заместо двух связного?
C++ Командная строка
Нужно выполнить задание, но как не пойму... Ввести n строк , найти самую короткую и самую длинную строки. Вывести найденные строки и их длину. Ввод осуществить как аргументы командной строки. Подскажите, как сам ввод сделать, в нете ничего не нашел(((
C++ Написать программу,которая находит среднее значение массива целых чисел при помощи функции http://www.cyberforum.ru/cpp-beginners/thread451189.html
Написать программу,которая находит среднее значение массива целых чисел при помощи функции. (на С++)
C++ Получить сумму m последних цифр числа n. Даны натуральное n,m. Получить сумму m последних цифр числа n. Решите на С.Заранее спасибо. подробнее

Показать сообщение отдельно
samdavydov
59 / 20 / 2
Регистрация: 23.02.2012
Сообщений: 36
23.02.2012, 09:12     Каррирование или карринг
Есть функция с n аргументами.
Карринг - преобразание одного вызова с n аргументами в n вызовов с одним аргументом.

Карринг популярен в динамических языках, где функция является присваиваемым объектом.

Функция является присваиваемым объектом, если я могу записать нечто вроде a = x*x, потом вызвать a(5) и получить 25.

Каррингом можно "замораживать" аргументы.

Пусть есть функция inc(a, b), которая увеличивает a на b.

Я могу сделать так (пример на python):

Python
1
2
3
4
5
def binary(f, arg): # f - функция от двух аргументов, arg - число
    return lambda x : f(x, arg) # вернуть функцию, где вместо второго аргумента всегда стоит число
 
a = binary(lambda x, y : x + y, 5) # в функции x + y забить на место второго аргумента число 5 
print a(7) # Теперь а - функция, увеличивающая чило на 5. x + 5 -> 7 + 5 == 12
Запись "lambda x : ..." означает, что я определяю функцию, принимающую x.
lambda x, y : x + y -> функция, принимающая x и y, и складывающая их.

____________
zmartzoft.ru
 
Текущее время: 17:47. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru