Описание тега functor

Термин "функтор" имеет несколько общих значений: 1. Функциональный объект. В объектно-ориентированных языках это функция, которая позволяет использовать объекты, как если бы они были обычными функциями. 2. Математическая структура, которая занимается отображениями между категориями. Эта концепция является полезной абстракцией в некоторых языках программирования, особенно в Haskell, где она реализована как класс типа. 3. В OCaml - модуль, принимающий в качестве аргумента другой модуль.
2 ответа

C++ Stateful функтор, который заполняет векторы

У меня вопрос по поводу функторов. Я построил простой класс: class PolygonPrinter { private: std::vector<float> x; std::vector<float> y; public: inline void operator()(Point& p) { x.push_back(boost::geometry::get<0>(p)); y.push…
19 мар '15 в 02:24
1 ответ

Сортировать с переопределением оператора не получается я хочу

Я пытаюсь отсортировать человека вектор по person.name и возрасту. Поэтому я попытался переопределить operator< в Person определение, и использовать функтор с std::sort(), Однако я не получил то, что хочу. Я ожидаю, что люди сначала упорядочены п…
07 июл '17 в 02:15
2 ответа

Экземпляр функтора

У меня есть следующий тип newtype Arr2 e1 e2 a = Arr2 { getArr2 :: e1 -> e2 -> a }, И я должен написать экземпляр Functor для этого, но я не очень понимаю, как я пытался instance Functor (Arr2 e1 e2) where fmap g (Arr2 a) = Arr2 (g a) а также …
03 апр '17 в 07:04
2 ответа

Как правильно спроектировать функтор, который будет извлекать различные поля из структуры

У меня есть std::vector из structs, которые содержат несколько полей, например: struct stats { double mean; double median; double rms; }; std::vector<stats> data; Я хотел бы разработать функцию, которая работает на vectorНапример, строит гисто…
04 июл '13 в 06:37
2 ответа

Функция, возвращающая удвоение, когда ожидается долгое

Недавно я ответил на другой вопрос, и в моем ответе был следующий код. template<typename T, typename ... Ts> struct are_arithmetic{ enum { value = std::is_arithmetic<T>::value && are_arithmetic<Ts...>::value }; }; template&…
12 июл '15 в 11:29
1 ответ

Частичные проблемы вызова приложений

Для предстоящей курсовой работы в январе я начал разработку небольшого движка DirectX. Чтобы выяснить, есть ли повышение производительности, я хотел попытаться вообще не использовать виртуалы (я знаю, что виртуалы не так уж и плохи, но я просто хоте…
28 ноя '12 в 01:16
2 ответа

Анализ аппликативных функторов

Я пытался узнать о статическом анализе аппликативных функторов. Многие источники говорят, что преимуществом их использования по сравнению с монадами является склонность к статическому анализу. Однако единственный пример, который я могу найти для вып…
15 дек '13 в 02:54
5 ответов

C++ std::transform вектор пар-> сначала в новый вектор

Извините за немного начинающий вопрос. Есть вектор и вектор пар typedef std::vector <int> TItems; typedef std::vector < std::pair <int, int> > TPairs; Есть ли способ преобразовать все первые элементы в паре в другой вектор за один …
01 фев '12 в 10:18
1 ответ

Указатель функции "не был объявлен в этой области"

На вершине main Функция в сценарии C++, я определяю указатель функции на основе аргумента командной строки следующим образом: int main(int argc, char *argv[]) { // Set integration method. const char* method = argv[argc - 1]; if (strcmp(method, "eule…
23 ноя '15 в 06:35
1 ответ

Обобщающая карта AndUnzip

Я ищу простой способ написать функцию mapAndUnzip :: (Functor f) => (a -> (b,c)) -> f a -> (f b, f c) Я не совсем уверен, что Functor это достаточно сильное ограничение, но я буду использовать его для конкретности. Я хочу иметь возможнос…
13 авг '14 в 22:19
1 ответ

Вопросы Обобщающий Функтор

Функтор в Control.Categorical.Functor имеет следующее определение: class (Category r, Category t) => Functor f r t | f r -> t, f t -> r where fmap :: r a b -> t (f a) (f b) Но допустим, я хочу иметь функтор от обычных функций до стрелок…
21 сен '15 в 12:32
1 ответ

SML Общий тип для разных структур

Я реализую наборы в стандарте ML. В настоящее время это выглядит так: signature SET = sig type t type 'a set ... val map : ('a -> t) -> 'a set -> t set end functor ListSetFn (EQ : sig type t val equal : t * t -> bool end) :> SET where…
04 июл '17 в 14:23
0 ответов

Где поставить код ответственным с извлечением значения из различных функторов

Учитывая функтор и конкретный способ, которым вы хотите развернуть его значение, существует ли предопределенный класс типов, который вы должны реализовать для unwrap Это? Например, учитывая тип: data X = X Int Int где я могу специализироваться unwra…
05 ноя '18 в 08:03
1 ответ

Компараторы в std::map, std::set и std::priority_queue

Все эти три контейнера принимают объект функции по константной ссылке, а не по значению или по ссылке пересылки. Это приводит к необходимости копирования объекта функции во внутреннее хранилище контейнера (не более двух раз). Есть ли причина дважды …
08 мар '17 в 03:59
1 ответ

Экземпляры функтора и монады, которые проверяют завершение

Это следует за другим вопросом от нескольких месяцев назад. Проблема связана с проверкой завершения в Agda с использованием типоразмеров. Вот преамбула: {-# OPTIONS --sized-types #-} module Term where open import Data.Empty open import Function open…
12 авг '14 в 07:23
0 ответов

Использование перечислений для выполнения команд

Спасибо за прочтение, Я хочу реализовать перечисление, которое дает список допустимых команд. Я прошу пользователя ввести команду и некоторые аргументы, которые идут вместе с ней (и было бы неплохо, если бы она могла быть интернационализирована), пр…
14 окт '15 в 14:02
1 ответ

Fmap поверх списка, содержащего отдельные элементы и списки

У меня есть структура данных, как так data ShoppingList a = Empty | Item a | Listofitems [ShoppingList a] deriving (Show) Я пытаюсь написать Fmap для этого instance Functor ShoppingList where fmap f Empty = Empty fmap f (Item i) = Item (f i) fmap f …
1 ответ

C++ Установить в качестве переменной члена класса с объектом функции класса

Мне нужно установить в качестве переменной члена класса, но также нужно, чтобы объект функции сравнения использовал атрибуты класса. class Example { int _member1; set<string, MyCmp> _myNameSet; class MyCmp { Example& myEx; MyCmp( const Exa…
24 июн '15 в 11:13
1 ответ

Функция с шаблонами и бустом

Я пытаюсь написать функтор для вызова функции повышения с помощью bind и некоторого шаблона. Итак, у меня есть это главное: int function(char c) { std::cout << c << std::endl; return (0); } int main() { Function<int (char)> fb = bo…
17 дек '11 в 15:17
2 ответа

Как перегруженный тип данных вызывается из функтора

Звоните функтору: double average=std::for_each(values.begin(),values.end(),CalculateAverage()); Выше кода вызовет функтор CalculateAverage, но изнутри "void operator () (double elem)", где вызывается "operator double() const". Функтор определяется т…
27 янв '17 в 09:19