Публикации по теме 'functor'
ФУНКЦИОНАЛЬНОЕ ПРОГРАММИРОВАНИЕ С ОСНОВ
Концепции
Мы начнем с изучения функций в математике, а затем углубимся в функциональное программирование на JavaScript и варианты его использования в реальном мире. Мы обсудим замыкания, функторы, встроенные функции более высокого порядка, такие как карта, фильтр, сортировка и т. д., цепочки функций и асинхронный JavaScript. Наконец, мы построим мини-научную основу, используя понятия, изученные в этой серии.
Предпосылки
Промежуточный уровень программирования на JavaScript и..
Функторы в C+; простое объяснение на примерах
В этой статье я расскажу что такое функтор в C++ и где бы вы хотели их использовать . охватывает несколько примеров кода . Необходимым условием для правильного понимания функторов является то, что вы знаете, что такое функции , классы, объекты и что такое перегрузка оператора .
Интуитивно функторы представляют собой гибрид между объектом класса и традиционными функциями.
Пример 1: Функторы как альтернатива повторяющимся функциям
Допустим, мы хотим создать функцию,..
Привет, Рубенс, классная статья!
Привет, Рубенс, классная статья! Функциональное программирование и теория категорий в JavaScript - это так весело!
Кстати, трюки Symbol.species очень крутые, я оставлю их на потом.
Однако я не уверен, правильно ли я понял ваше объяснение о монадах (цитата мистера Элиотта о характеристиках монады мне не очень понятна).
Я понимаю, что монада - это функтор (у нее есть метод map ) с функцией flatMap и функцией of , которые позволяют вам обернуть значение монадой.
Что меня беспокоит в..
Истинное использование монад в FP
Часть 2: Проблема мотивации в JS
Проблема мотивации
Ваш менеджер просит вас написать функцию countCharsOfFriendsPosts , которая по идентификатору пользователя подсчитывала бы количество символов в сообщениях, сделанных друзьями пользователя. Ваш менеджер сообщает вам, что база данных пользователей будет представлена в виде массива в вашей локальной памяти, как показано ниже:
Будучи опытным функциональным программистом, вы быстро узнаете, что countCharsOfFriendsPosts..
Прагматические функторы
или как я научился перестать беспокоиться и полюбить Коробку
Пролог
Изначально это было электронное письмо. То, что это превратилось в новеллу, должно пролить свет на то, почему я пишу так мало писем.
Тем не менее, много говорится о мистификации и демистификации этой концепции. Я подумал, что вместо того, чтобы закончить это электронное письмо, я брошу свою шляпу на ринг и одновременно попытаюсь создать некоторый контент.
Функтор - это не что иное, как концептуальный блок, в..
Истинное использование монад в FP
Часть 1. Суть функционального программирования
Почему монады полезны в FP?
Большинство начинающих функциональных программистов знакомо с изрядной долей «учебников» по монадам. Тем не менее, несмотря на огромное количество информации по этой теме, понимание относительно просто определяемой монады по-прежнему ускользает от большинства. Я убежден, что причина этого в том, что большинство «учебников» дают определение вместе с аналогиями, чтобы помочь людям понять определение, но..
Вопросы по теме 'functor'
как реализовать общий функтор для нескольких классов в С++
предположим, что у вас есть два (или более) класса с закрытыми векторами-членами:
class A {
private:
std::vector<X> priv_vec;
public:
//more stuff
}
class B {
private:
std::vector<Y> priv_vec;
public:
//more...
988 просмотров
schedule
22.02.2023
Как отсортировать std::map?
Вот моя карта:
typedef std::map<int/*security id*/, PositionMonth> PortfolioMonth;
где PositionMonth — структура, например:
struct PositionMonth
{
Nav::Shares shares_;
Nav::Amount market_value_;...
7073 просмотров
schedule
13.02.2023
Определить функцию C ++ во время выполнения
Я пытаюсь настроить некоторый математический код, который я написал, чтобы разрешить произвольные функции, но, похоже, я могу сделать это только путем предварительного определения их во время компиляции, что кажется неуклюжим. В настоящее время я...
5101 просмотров
schedule
29.09.2022
чистая функция функций, которая возвращает функции в D
Я пытаюсь создать чистую функцию, которая возвращает произведение двух других чистых функций:
pure Func multiplyFunctions(Func,Real)(scope const Func f1, scope const Func f2)
{
return (Real a) { return f1(a) * f2(a); };
}
К сожалению, у...
120 просмотров
schedule
02.05.2024
STL for_each с несколькими возвращаемыми значениями и/или функтором виртуального базового класса
Я пытаюсь преобразовать некоторые циклы в свой код, чтобы использовать функциональность for_each STL. В настоящее время я вычисляю и накапливаю два отдельных значения по одному и тому же набору данных, что требует от меня повторения данных дважды. В...
1950 просмотров
schedule
13.03.2023
F# Сортировка массива кортежей
let standard = (0, 4.5M, 4L)
let tuples = [| ("A", -2, 1.0M, 2L);
("B", -1, 2.0M, 3L);
("C", 0, 3.0M, 4L);
("D", 1, 4.0M, 5L);
("E", 2, 5.0M, 6L) |]
let qualified = tuples...
1437 просмотров
schedule
28.04.2022
Почему экземпляр Applicative для Maybe не дает Nothing, если функция Nothing в ‹*›
Я новичок в haskell и читаю книгу «Научитесь хаскеллу». Я уже некоторое время пытаюсь переварить функторы и аппликативные функторы.
В теме о прикладных функторах реализация экземпляра для Maybe дается как
instance Applicative Maybe where...
1536 просмотров
schedule
10.06.2023
stl remove_if с результатом функции-члена класса
У меня есть контейнер объектов, список; и класс Foo имеют функцию-член id(), возвращающую целочисленный идентификатор. Теперь я хочу использовать алгоритм stl remove_if для удаления некоторых объектов, идентификатор которых меньше значения. Я не...
928 просмотров
schedule
09.09.2022
Как избавиться от лишнего Maybe
У меня есть функция, которая может завершиться ошибкой, поэтому возвращаемое ею значение должно быть заключено в объект Maybe. Он использует другую функцию, которая также может дать сбой и которая также заключена в объект Maybe. Проблема в том, что...
846 просмотров
schedule
30.12.2022
Я заново изобретаю колесо с этим тривиальным классом переадресации вызова метода?
Я только что обнаружил, что создаю класс
template <typename T> struct invoker {
void operator()(T& it) const {it();}
};
поэтому я мог бы передать invoker<foo> чему-то (которое не находится под моим контролем), которое...
531 просмотров
schedule
27.04.2022
Какой самый чистый способ сравнить с результатом вызова функции-члена
Простите меня, если это уже спрашивали раньше, я просто не могу найти подходящее решение.
Я часто обнаруживаю, что создаю функторы для функций-членов класса, подобных приведенным ниже, чтобы впоследствии использовать их для find_if или remove_if....
78 просмотров
schedule
24.04.2022
Указатель на функцию, которая принимает указатель на другую функцию в качестве аргумента
Это должен быть простой вопрос, но я, возможно, не смогу правильно его сформулировать или, возможно, я пытаюсь бросить вызов принципам языка C из-за отсутствия у меня опыта работы с ним.
Все, что я хочу сделать, это, имея указатель на функцию,...
240 просмотров
schedule
09.06.2023
Какие монады могут быть выражены как Free над некоторым функтором?
документация для Free говорит:
Ряд обычных монад возникает как свободные монады,
Учитывая data Empty a , Free Empty изоморфна монаде Identity .
Free Maybe можно использовать для моделирования парциальной монады, где...
1841 просмотров
schedule
30.03.2023
Вызов printf с помощью шаблонного функтора segfaults (только 64-разрядная версия, valgrind clean в 32-разрядной версии)
В настоящее время я отлаживаю некоторый код C++, написанный в конце 90-х годов, который анализирует сценарии для загрузки данных, выполнения простых операций, вывода результатов и т. д.
Люди, написавшие код, использовали функторы для сопоставления...
334 просмотров
schedule
26.03.2023
Шаблонная функция, принимающая вызываемые функторы с параметрами X
Я пишу размещенную программу на C++, которая запускает написанный пользователем C-код, скомпилированный на лету. Крайне важно, чтобы некоторые типичные исключения перехватывались из C-кода и обрабатывались/игнорировались. Для этого я вызываю код C...
2600 просмотров
schedule
18.01.2024
Экземпляр функтора для GADT с ограничением типа
Сегодня я хотел исследовать, можно ли построить тип данных таким образом, чтобы он сохранял не данные типа своей сигнатуры типа, а другое его представление. Итак, вот моя попытка GADT, который имеет конструктор типа типа a , но конструктор данных...
1353 просмотров
schedule
17.04.2024
Как работает упаковка указателя функции и объекта функции в универсальном коде?
Следующее определение шаблона
template <typename Func, typename ReturnType, typename... Arguments>
class Command
{
public:
Command(Func f) : m_func(f) { }
ReturnType operator()(Arguments... funcArgs) { return m_func(funcArgs...); }...
807 просмотров
schedule
25.06.2022
Функция или функтор как параметр шаблона? (Если ему не нужно состояние)
Говорят, что преимущество функторов по отношению к функциям заключается в том, что они сохраняют состояние . Скажем, в моей проблеме это не актуальная функция.
Когда я определяю шаблонную функцию/класс, есть ли какое-либо правило для выбора,...
1697 просмотров
schedule
08.12.2022
Оболочка функции через шаблон класса (объект функции) (с переменным числом переменных)
С++
Я пытаюсь реализовать оболочку функции через шаблон класса (объект функции) (вариативный). Класс имеет в качестве единственного члена данных указатель на функцию, который инициализируется указателем функции, который он обертывает, или...
1414 просмотров
schedule
28.10.2022
boost::function против указателей на функции
Я реализую универсальный считыватель настроек. Идея в том, что у меня есть приложение, настройки которого могут быть логическими, целыми и строковыми. Затем у меня есть класс Config, где реализованы геттеры для таких настроек, класс config берет...
1324 просмотров
schedule
18.06.2022