Описание тега 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 …
21 фев '19 в 12:29
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