[Haskell-cafe] How to "Show" an Operation?
Martin Drautzburg
Martin.Drautzburg at web.de
Sun Jun 6 16:50:24 EDT 2010
On Friday, 4. June 2010 18:02:15 Daniel Fischer wrote:
> On Friday 04 June 2010 17:37:16, Martin Drautzburg wrote:
> > Dear all,
> >
> > If I have a problem where I have to select from a set of operations, how
> > would I print the result?
> >
> > Example: If I can chose from (x+y), (x*y), (x^2+y)...
> > and I feed them all into my problem solver
> > and it finds that "(x*y) is right", how can I print that string?
>
> You'd have to pass the description string to the problem solver too.
> If it was previously
>
> solver :: Num a => Whatever -> [a -> a -> a] -> Result
>
> it would become for example
>
> solver :: Num a => Whatever -> [(a -> a -> a, String)] -> Result
Thanks to Ozgur Akgun for his suggestion. However I really wanted a "human
readable" name, but admittedly I haven't said so.
About this one:
The only thing I miss in this solution, is that the name is identified by its
position in the Pair. In this case this is certainly not a problem. But
anyways, I tried to give it a name, using record syntax.
This worked well until I wanted to define a different set of operations, which
should also be named. It turned out that the "name" function, which was
implicitly created (using record syntax) cannot be used again.
How should I work around that. I could use two different "name" function, but
I don't like this. Would I have to define a typeclass "namedFunction" which
all have a "name" function?
I guess my mind is still a bit stuck in the OO world.
--
Martin
More information about the Haskell-Cafe
mailing list