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
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 900 bytes
Desc: OpenPGP digital signature
URL: <http://www.haskell.org/pipermail/haskell-cafe/attachments/20110606/74c93d39/attachment.pgp>