Questions tagged [functor]

0

votes
0

answer
6

Views

Data types a la carte — over-engineered?

I'm working through Swiertstra's 2008 paper. I'm up to Section 3 eval addExample, just before 'Automating injections'. And boy! does it need automating. Is it just me, or is the whole thing over-engineered? Compare this in the paper addExample :: Expr (Val :+: Add) addExample = In (Inr (Add (In (Inl...
AntC
0

votes
1

answer
47

Views

How can I Tell if a Type is a Functor? [duplicate]

This question already has an answer here: Find out whether a C++ object is callable 8 answers Can std::is_invocable be emulated within C++11? 1 answer In c++17 I have is_invocable to match function pointers, lambdas, and functors. But what if I'm trapped on c++14? Do I have a type trait, or can I...
Jonathan Mee
1

votes
1

answer
86

Views

Fluent Interface in ReasonML

Is there a way to get a module to return its own type using a functor submodule? Example module type A = {}; module type B = { let varB: int; }; module AMod : A = {}; module BMod : B = { let varB = 42; }; module Fn = (A: A, B: B) => A; /* Lets say this does some complex function that returns Type A...
GTDev
3

votes
4

answer
126

Views

Applicative typeclass based on two different functors

Is there something similar to the Applicative type class, but where there are two functors for each side of the application which are different? i.e. () :: (Functor f, Functor g) => f (a -> b) -> g a -> f b
Neal Alexander
1

votes
1

answer
84

Views

Is there a way to call a class method from a functor inside the same class?

I am a little bit new in C++ so I am not sure how to handle such a problem. I have a class with several private methods. Inside one of the methods, there is a functor from which I want to call another class method. Here is the example code: # myprogram.h namespace new_space { // Generic functor temp...
S.abajun
1

votes
1

answer
64

Views

Can I have an array of lambda pointers in order to hold functions with different types of arguments/return values?

Let's assume I have a class with two member functions: #include #include using namespace std; class MyClass{ MyClass(){ MyCommandServer server; server.addToCollection(&[](string a)->string{return helloWorld();}); server.addToCollection(&[](string a)->string{return to_string(add(stoi(a[0]),stoi(a[1...
Exynym
1

votes
0

answer
49

Views

Haskell: Will Kurt exercise - getting more info from dictionary

Exercise 28.3 'get programming with haskell' from Will Kurt. Idea is to use the cheapest robot part using applicative functors. Now I wrote the code below, which does exactly that, but I don't want to know the cost, but actually the entire part (name, description etc). Seems pointless to me to provi...
Madderote
1

votes
1

answer
50

Views

Pass member function as callback to constructor other class

Hi I want to pass member function as argument to constructor other class. I tried lot solutions but all given me fail. So.. First class.. class WebSocketsServerRunner : public WebSocketsServer { private: ThreadController threads = ThreadController(); SensorsState sensorsState; void notifyClient(uint...
MateuszZ
4

votes
3

answer
125

Views

Any function with the same polymorphic type as fmap must be equal to fmap?

I'm reading the second edition of Programming in Haskell and I've came across this sentence: ... there is only one way to make any given parameterised type into a functor, and hence any function with the same polymorphic type as fmap must be equal to fmap. This doesn't seem right to me, though. I ca...
Zac
1

votes
3

answer
1.4k

Views

Creating functor from lambda expression

I would like to know if it is possible to create an actual functor object from a lambda expression. I don't think so, but if not, why? To illustrate, given the code below, which sorts points using various policies for x and y coordinates: #include #include #include #include struct Point { Poin...
Daniel Gehriger
1

votes
1

answer
2.1k

Views

pthread member function of a class with arguments

I was successful at attaching a thread to class member using the code on the bottom of this page: http://www.tuxtips.org/?p=5. I can't figure out how to expand the code to encapsulate a method such as void* atom(void *inst) where *inst is a structure that contains various thread parameters. Specific...
Mikhail
1

votes
1

answer
344

Views

std::tr1::function - store function objects of various types in common container

I'm converting my implementation of functor to std::tr1::function (the reason is that with my implementation we need to predefine type and functor class for each function type, I want to extend this to work with any function). I have int param = 1; std::tr1::bind (&MyClass::func, param); and I want...
brigadir
1

votes
2

answer
241

Views

C++ Trying to create an 'Intermediate' functor

What I mean by an 'intermediate' functor is: a normal functor where one of the arguments can be specified at call-time. The problem is that I have an animation timeline (essentially scalar values at particular frames), and the output of this needs to be piped to and from getter/setter methods withi...
cmannett85
1

votes
1

answer
633

Views

error: ambiguous overload for ‘operator[]’ when using boost-bind to boost-function

I am attempting to map the filter functor with one of the member methods of my class based on the value of an input string. #include #include #include #include #include #include typedef boost::function < bool(std::map, std::string) > MyFilterFunctor; class MyClass { public: bool FilterFunction...
Kurt Koller
1

votes
1

answer
45

Views

Templated partial application call issues

For the upcoming Coursework in January, I started developing a small DirectX engine. To find out if there is a performance increase I wanted to try to not use any virtuals at all (I know that virtuals aren't all bad, but I just wanted to see if it is possible without them). When I started playing ar...
niktehpui
1

votes
2

answer
191

Views

std::map of member functions with different args

I have a DeviceSettingsManager class that looks like: class DeviceSettingsManager { int32_t PropertyA(); void SetPropertyA(int32_t prop); std::string PropertyB(); void SetPropertyB(std::string prop); // about 50 properties go here ... } and I need to set the properties according to the property stri...
maverik
1

votes
2

answer
76

Views

C++ functor compile error

I have the following main program, which when compiled gives this error: Undefined symbols for double squarer(double, SineFunctor&) Why can't the linker find the function squarer? include #include 'SineFunctor.h' #include 'squarer.h' int main() { const double PI = 3.141592L; double x = 1.0; double...
user2320645
1

votes
1

answer
378

Views

C++ Defining a virtual base class overloaded operator

I am trying to write a set of generic math utility classes (root finders, integrators, etc.) that take in upon construction a pointer to a base class that defines the function I want the specific algorithm to operate on. The base class should only define a public virtual interface (abstract or with...
JohnML
1

votes
1

answer
72

Views

Link 2 modules generated by functors in 2 files

I have defined several modules as follows: (* zone.ml *) module ZoneFun (Prop : PROP) = (struct ... end: ZONE) (* zones.ml *) module ZonesFun (Zone : ZONE) = (struct ... end: ZONES) where PROP is the interface of the module Type and some other modules. (* calculate.ml *) open Type open Zone open Zon...
SoftTimur
1

votes
1

answer
97

Views

Why can't compiler deduce types from templates like template<typename R(typename… Args)>?

For me it would look natural that the compiler could deduce types of templates like this: template struct wrap { std::function func_; template wrap(Args2&& ...args2) : func_(std::forward(args2)...) { } R operator()(Args&&... args) { cout
dennis90
1

votes
1

answer
434

Views

Difference between function and functor [closed]

I'm trying to write the following code: class MyClass{ public: virtual int operator()()=0; } int bar() { return 1; } int _tmain(int argc, _TCHAR* argv[]) { class : public MyClass{ int operator()(){ return 1; } } foo; } What's difference between foo and bar?
St.Antario
1

votes
1

answer
75

Views

Functor and function pointer logic

class StrangeFunctor { public: StrangeFunctor(int (*comp)(string, string)) { this->comp = comp; } int operator()(string str1, string str2) { return –comp(str1, str2); } private: int (*comp)(string, string); } I was just curious as what the above code actually did. Assuming the functo...
user3521441
1

votes
1

answer
309

Views

How can you bind a variadic member function to a functor?

I am attempting to bind the first parameter of a variadic function using std::bind and then pass the returned functor to the connect() function of a boost::signals2::signal. The process works fine as long as the variadic function is not a member function. This is what I would like to be able to do...
maaronking
1

votes
1

answer
580

Views

Functors vs Function Closures in Python

We were supposed to use functors for our lab, and then use function closures instead. For the functors we imported partial as command from functools, where the set up ended up looking something like: digit = command(self.add_character, text = number) label.bind('< Button-1 >', digit) where we would...
user3484055
1

votes
1

answer
118

Views

How to define fmap in a GADT Expression?

Given a simple 'language': data Expr a where ConstE :: a -> Expr a FMapE :: (b -> a) -> Expr b -> Expr a instance Functor Expr where fmap = FMapE interpret :: Expr a -> a interpret (ConstE a) = a interpret (FMapE f a) = f (interpret a) From that I would like to extract a call g...
fho
1

votes
2

answer
207

Views

How to use different functoids within an array or vector

I have written a small piece of code where I am able to call setter and getter functions packed within a functoid using mem_fun templates. I now would like to use this approach on top of a class hierarchy where every class might have getter and setter which can be registered as pair within a vector...
Bernd L.
0

votes
0

answer
16

Views

Why does GHC not parse functor instance for 'data Wrap f a = Wrap (f a)'?

In Haskell Programming From First Principles section 16.13, the Wrap datatype is presented to demonstrate a type whose Functor instance requires a typeclass constraint on one of its parameters: data Wrap f a = Wrap (f a) deriving (Eq, Show) After demonstrating a couple of incorrect instances of Func...
Kevin Bradner
1

votes
1

answer
69

Views

Passing a function object to a constructor [duplicate]

This question already has an answer here: Pass anonymous function object to std::function? 1 answer What I am trying to achieve is to make a functor that can take different functors as arguments. Edit: the reason for my problem, the 'most vexing parse', and the solution are well-described: see this...
1

votes
1

answer
554

Views

Invalid cast from type 'MyStruct' to type 'void*'

I have a struct called Spiketimesolver defined in the following header file: #include #include 'plot_support.h' struct Spiketimesolver { const Doub tau_0, I_0, V_start, I_start; Spiketimesolver(const Doub tau_0, const Doub I_0, const Doub V_start, const Doub I_start) : tau_0(tau_0), I_0(I_0), V_sta...
dbliss
1

votes
1

answer
389

Views

Examples of Functors composition

This is a follow-up to an answer to my previous question. We know that functors compose. I can write a composition of functors List[_] and Option[_] using scalaz like this: import scalaz._, Scalaz._ scala> val flist = Functor[List] flist: scalaz.Functor[List] = [email protected]
Michael
1

votes
1

answer
37

Views

Terminology surrounding functors

Let's take a simple functor class LessThan { public: explicit LessThan (int in ) : val(in) {} bool operator() (int param) const { return param < val; } private: int val; }; which I can use like this for example - vector myVector = factory(); size_t count = count_if(begin(myVector), end(myVector), L...
The Vivandiere
1

votes
1

answer
183

Views

Conditional specialization of functors operator()

I would like to ask you for help with the programming headache I face last few days. Let me try to explain what I am about to implement... My goal is to define a set of equations with its validity. Let me explain more in detail... I think about being each equation object a functor - a class defining...
Martin Kopecký
1

votes
1

answer
201

Views

How to write the Functor instance for this type?

I'm struggling with an exercise from Haskell Book (Chapter 16. Functor). Given the following, it expects me to define fmap: {-# LANGUAGE FlexibleInstances #-} newtype Flip f a b = Flip (f b a) deriving (Eq, Show) newtype K a b = K a instance Functor (Flip K a) where fmap = undefined In a previous...
Emre Sevinç
1

votes
4

answer
102

Views

Restrict functor parameter type and constness

I am trying to implement a resource protection class which would combine data along with a shared mutex (actually, QReadWriteLock, but it's similar). The class must provide the method to apply a user-defined function to the data when the lock is acquired. I would like this apply method to work diffe...
mentalmushroom
1

votes
1

answer
137

Views

How can you add a String to a list of Monads in Haskell

I am a new to functional programming. I am scraping a website using Scalpel and I need to extract information from links contained in that website. What I can extrapolate though is just part of the link and I need to add to the String 'http://www.google.com/' to each of these links. I can't do a nor...
BourbonCreams
1

votes
1

answer
106

Views

Can you use a functor/functional programming to group a list in Java 7 (and count its elements per group)?

Can you group List types = new ArrayList(Arrays.asList(TypeEnum.A, TypeEnum.B, TypeEnum.A)); into a Map countPerType;, using functors (e.g. Google's Guava, Apache's Commons Functor) pre Java 8? I'm trying to get my head around functional programming, but am unsure if that sort of thing would actuall...
Christian
1

votes
1

answer
254

Views

How to resolve this ambiguity while mapping my Either type?

Suppose I've got two types IntResult and StringResult: import cats._ import cats.data._ import cats.implicits._ scala> case class MyError(msg: String) defined class MyError scala> type Result[A] = Either[NonEmptyList[MyError], A] defined type alias Result scala> type StringResult = Result[String] de...
Michael
1

votes
1

answer
123

Views

Scala: composition law counter example

I'm learning functional programming by using Scala language. I have read tutorial about functor that functor has 2 laws: 1. identity law: functor.map(x => x) ≡ functor 2. Composition law: functor.map(x => f(g(x))) ≡ functor.map(g).map(f) The thing I don't know about composition law. I have a fee...
Trần Kim Dự
1

votes
1

answer
203

Views

why scala.util.Try has an instance in cats but not in scalaz?

typelevel's cats(version 0.9.0) has a Functor instance for Try object catsTry { import cats.Functor import cats.instances.try_._ import scala.util.Try val f = implicitly[Functor[Try]] //compile } while there is no Functor instance for Try in scalaz(version 7.3.0-M12). object scalazTry { import scal...
chenhry
1

votes
1

answer
77

Views

fmap over variable argument function

I would like to define fmap on variable argument functions: type family VarArg (args :: [*]) e where VarArg '[] e = e VarArg (a ': as) e = a -> VarArg as e mapVarArg :: forall args e e' . (e -> e') -> VarArg args e -> VarArg args e' mapVarArg f = _ This is the closest solution I have found: mapVarAr...

View additional questions