[Haskell-beginners] help designing types for a gsl fit
PICCA Frederic-Emmanuel
frederic-emmanuel.picca at synchrotron-soleil.fr
Fri Jun 2 06:04:44 UTC 2017
Hello
I imagine that I have two types A and B
I want to create a ADT
data C = C A B
1) the toGsl class
class ToGsl a where
toGsl :: a -> [Double]
this class allow to convert a type to a Vector of double in order to use gsl for a fit
so I can create instance for A and B (I do not write the instance but the result of the toGsl function)
A -> [a1, ... an]
B -> [b1, ... bm]
Now I want this to work also with C
C -> [a1..., an] ++ [b1, .... bm]
So the C instance is juste the (toGsl a) ++ (toGsl b)
Is there a way to write this generically for other type construct like (data D = D C A) etc....
Functor, Applicative, Monoid ?
2) the fromGsl case
now the inverse method is
cladd FromGsl a where
fromGsl :: a -> [Double] -> a
so now the question is if I have a [Double], I need t osplit this list for each composant of the ADT.
in the case of C
fromGSL (C a b) v = ...split the vector... and apply fromGsl to a and b
So my question is the symetic of the previous one.
Is it possible to create a generic function inorder to do this.
thanks for your help.
Frederic
More information about the Beginners
mailing list