[Haskell-cafe] Comparison between fields of each record

Jeon-Young Kang jykang22 at gmail.com
Tue Nov 24 19:14:01 UTC 2015


Thank you so much :)

On Tue, Nov 24, 2015 at 2:01 PM, Francesco Ariis <fa-ml at ariis.it> wrote:

> On Tue, Nov 24, 2015 at 01:20:03PM -0500, Jeon-Young Kang wrote:
> > Dear All.
> >
> > I'd like to compare fields of each record.
> >
> > here is my record.
> >
> > data Person = Person {name:: String, age:: Int } deriving(Show)
> > data Relations = Friend | Older | Younger
> >
> > class Comparison a where
> >     compare:: a -> a -> Relations
> >
> > instance Comparison Person where
> >     compare Person a b Person a b
> >          | b1 == b2 = Friend
> >          | b1 > b2 = Older
> >          | b1 < b2 = Younger
> >
> > How can I fit it?
> >
> > Sincerely,
> >
> >
> > Jeon-Young Kang
>
> Hello Jeon-Young, I attach a version that compiles. Keep in mind that
>
>     compare (Person x y) (Person q w) -- this is legal
>
>     compare Person x y Person q w -- "space" takes precedence over
> everything,
>                                   -- so this function has 6 arguments
>                                   -- instead of the expected 2!
>
>
> λ> Main.compare (Person "cdsac" 1) (Person "cdscasd" 20)
> Younger
>



-- 
Department of Geography
State University of New York at Buffalo

jykang22 at gmail.com

Jeon-Young Kang
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/haskell-cafe/attachments/20151124/014f44cc/attachment.html>


More information about the Haskell-Cafe mailing list