Чем называют этот функциональный “шаблон”?

Файл cordova.js копируется в структуру каталогов www при компиляции приложения, вам не нужно вручную его копировать - вы просто добавляете ссылку на него в своей голове

6
задан Chris Conway 14 January 2009 в 16:22
поделиться

7 ответов

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

Вещью, которую это возвращает, является преобразователь — закрытие, созданное для задержанного вычисления фактического значения. Обычно преобразователи создаются для ленивой оценки выражения (и возможно memoize это), но в других случаях, функция просто необходима вместо пустого значения, как в случае"constantly 5", который на некоторых языках возвращает функцию, которая всегда возвращается 5.

Последний мог бы подать заявку в данном примере, потому что принятие языка оценивает в применимом порядке (т.е. оценивает аргументы прежде, чем вызвать функцию), функция не служит никакой другой цели, чем превратить значения в функцию, которая возвращает их.

WhatAmIDoing является действительно реализацией "постоянно" функция, которую я описывал. Но в целом, Вы не должны возвращаться просто args во внутренней функции. Вы могли возвратиться"ackermann(args)", который мог занять много времени, как в...

function WhatAmIDoing2(args...)
   return function()
       return ackermann(args)
   end
end

Но WhatAmIDoing2 сразу возвратился бы, потому что оценка функции ackermann будет приостановлена в закрытии. (Да, даже на языке вызова по значению.)

11
ответ дан 8 December 2019 в 05:58
поделиться

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

1
ответ дан 8 December 2019 в 05:58
поделиться

Я сказал бы, что XXXX возвратов закрытие функции без имени привязали значения x, y и z.

Эта статья Википедии может пролить некоторый свет

4
ответ дан 8 December 2019 в 05:58
поделиться

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

Соление является термином, ususally раньше обозначал некоторую сериализацию. Возможно, для того, чтобы хранить объект создается из нескольких значений.

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

2
ответ дан 8 December 2019 в 05:58
поделиться

Делегат?

В основном Вы возвращаете функцию?? или вывод функции?

Не понял, извините...

-2
ответ дан 8 December 2019 в 05:58
поделиться

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

5
ответ дан 8 December 2019 в 05:58
поделиться

Что-то очень похожее называется постоянно в Clojure:

http://github.com/richhickey/clojure/blob/ab6fc90d56bfb3b969ed84058e1b3a4b30faa400/src/clj/clojure/core.clj Only#L1096

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

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

(map (constantly 9) [1 2 3])
=> (9 9 9) 

Просто интересно, что вы используете это для?

1
ответ дан 8 December 2019 в 05:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: