[Haskell-cafe] How to organize code

Tim Chevalier catamorphism at gmail.com
Mon Jan 28 02:27:00 EST 2008


On 1/27/08, L.Guo <leaveye.guo at gmail.com> wrote:
> Hi,
>
> How do you organize code ?
>
> Here is a sample.
> Acturally, I am thinking about using this plan.
>
> Any suggestions ?
>
> > -- BasicalType.hs
> > type Position = (Int,Int)
> > data Box = Box { pos :: Position }
> > data Chain = Chain { pos :: [Position] }
>
> > -- Object.hs
> > import BasicalType
> > class Object o where
> >   pos :: o -> [Position]
>
> > -- Type.hs
> > import BasicalType
> > import Object
> > instance Object Box where
> >   pos = return . BasicalType.pos
> > instance Object Chain where
> >   pos = BasicalType.pos
>
> > -- Main.hs
> > import Type
> > ...
>

Be careful not to confuse Haskell's type class system with the idea of
a "class" in object-oriented programming. I suggest you read this
article:
http://trevion.blogspot.com/2007/02/snowball-chance.html

Cheers,
Tim

-- 
Tim Chevalier * http://cs.pdx.edu/~tjc * Often in error, never in doubt
"...It's a thin line between amateur and professional, a line mostly
emphasized by insecure professionals." -- Bob Franke


More information about the Haskell-Cafe mailing list