On 06/06/2011 02:57 AM, Yitzchak Gale wrote: > Generally, we don't start out with a type class. Type classes are > great for the special situations in which they are needed (although > you can do pretty well without them even then), but first > let's get the basic concepts. > > Perhaps a model is just a function: > > type Model a = Ord a => Set a -> [a] -> ProbDist a > > or something like that.
Erm... yeah, actually. But... this prevents me from storing more information in a Model in the future. While I don't really anticipate needing too (I can see this function covering all likely use cases), it does seem sorta restrictive. > >> > Having that working, I'm trying to estimate the information entropy of a >> > model >> > >> > entropy :: (Model m) => m -> Double > Perhaps just a function: > > entropy :: Model a -> Double > > I still don't know enough details about what you're doing, > so my types are probably off. But I hope you get the idea. No, your types are right. > > If that's not general enough, you may introduce more functions, or > some data types. Those give you a huge amount of power - remember > that data types can take multiple type parameters (without any > GHC extension), they can have functions as their parameters, etc. > > Or, perhaps you'll even get to the point where you'll need a type class, > but that's pretty far down the road, and what you would need it > for is very different than what a class is in OOP - they are different > concepts. Oh, I understand the difference between a class and a typeclass. It's the difference between an interface and a typeclass that I apparently haven't grasped. Thanks. > > Hope this helps, > Yitz
signature.asc
Description: OpenPGP digital signature
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe