Cтраница 1
Функции высшего порядка используются для описания общих видов рекурсии. [1]
Все функции высшего порядка в языке FP являются встроенными. [2]
Применение функций высшего порядка часто приводит к очень кратким и абстрактным программам. [3]
Для иллюстрации использования функций высшего порядка на практике рассмотрим простую задачу текстовой обработки и покажем, каким образом подобные функции могут быть использованы для представления решения задач в очень кратком и абстрактном виде. Проблема, которую предстоит рассмотреть, связана с образованием списка счетчиков слов из текстового файла. Предполагается, что текст состоит из некоторого количества слов и каждому слову в тексте сопоставлено целое число, соответствующее тому, сколько раз данное слово встречается в тексте. [4]
Определите compose - функцию высшего порядка, которая возвращает композицию двух заданных функций, являющихся ее аргументами. [5]
Как уже было показано, функции высшего порядка направлены на создание рекурсивной структуры, общей для многих функций, имеющих дело со списками. Тем не менее можно определить такие типы данных произвольной сложности, для которых функции типа тар и reduce не являются функциями абстрактной рекурсии. [6]
Итак, закончено обсуждение, функций высшего порядка и приемов программирования этих функций. Следует отметить, что в Норе, как и в большинстве функциональных языков, не существует ограничений на количество и сложность подобных функций. FP, в котором нет средств для определения пользователем функций высшего порядка. Вместо этого язык обеспечен небольшим набором встроенных функций высшего порядка, которые рассматриваются как программно-встроенные блоки типа let, where, условные выражения и др., которые в языке Норе обеспечивают построение программных блоков. [7]
Этот уровень РД предусматривает описание исполнения функций высшего порядка под непосредственным кураторством генерального директора и его заместителей, то есть механизм реализации основных направлений деятельности ( функций) в рамках полномочий, определенных Уставом ООО Баштрансгаз, и других функций, связанных с организацией системы управления Общества. Данные РД требуют согласования с заместителями генерального директора, курирующими направление деятельности, руководителями задействованных структурных подразделений. [8]
Miranda, где осуществлен совершенно иной подход к функциям высшего порядка. В Норе объект, значением которого является функция, явно порождается при помощи лямбда-выражения; в Miranda же нет механизма для явного определения лямбда-выражения, функциональные объекты в нем генерируются частичным применением существующих функций. [9]
Основной анализ строгости может быть естественным образом обобщен для функций высшего порядка и неплоских доменов. [10]
Отличительной особенностью FP является то, что в нем нельзя выражать функции высшего порядка, определенные пользователем. Однако существуют встроенные функции высшего порядка - это ОФП применить-ко-всем, левая вставка и правая вставка. Каждая из них работает с последовательностями, и считается, что для большинства практических целей других функций высшего порядка не требуется. [11]
В самом деле, методы неподвижной точки могут быть применены и к функциям высшего порядка, но это не единственное их достоинство. Для более полного определения в качестве семантической структуры необходимо использовать функциональное пространство. [12]
Можно выявить общую структуру таких функций, как MakeStrings и IncList, определив функцию высшего порядка, которая, используя функции типа Listify или Inc в качестве аргумента, применяет их к каждому элементу заданного списка, выступающему в роли второго аргумента. Подобная функция высшего порядка широко используется и часто называется тар для отражения того факта, что она отображает каждый элемент списка. [13]
В этой главе будет рассмотрено еще одно важное средство функциональных языков, а именно функции высшего порядка. Концепция функций высшего порядка возникает из идеи о том, что функции должны иметь тот же статус, что и любой объект данных, так чтобы они сами могли быть входными и выходными данными других функций. В этой главе будет показано, Каким образом эта способность может быть использована для представления общих образцов рекурсии и, следовательно, для выражения рекурсивных функций через нерекурсивное применение функций высшего порядка. Подобная техника приводит к очень сжатым и абстрактным программам, которые часто просто удивительно коротки по сравнению со сложностью выполняемых ими вычислений. Мы рассмотрим также определенный стиль программирования, основанный на использовании функций высшего порядка, и несколько, примеров, иллюстрирующих его применение на практике. [14]
Таким образом можно получить эквиваленты в FP для любых функций первого порядка Норе; для трансляции функций высшего порядка не требуется нового метода, если, как обсуждалось в конце гл. [15]