On 11/2/07, karle <[EMAIL PROTECTED]> wrote:
> type Address = Int
> data Port = C | D deriving(Eq,Show)
> data Payload = UP[Char] | RTDP(Address,Port) deriving(Eq,Show)
> data Pkgtype = RTD | U deriving(Eq,Show)
> type Pkg = (Pkgtype,Address,Payload)
> type Table = [(Address,Port)]
                ^^^^^^^^^^^^^^
                  Two elements

> update_table1::Table -> Pkg -> Table
> update_table1 [] (t,d,y)  = [(t,d,y)]
                               ^^^^^^^
                            Three elements

So there's the error.    You probably want to return something like
[(a,p)] where a is an address and p is a port.  I'm trying to figure
out where you would get that information though.  If your payload (the
"y" parameter in your implementation) is RTDP then you have _two_
addresses (the "d" parameter and the one in the payload), so I
wouldn't know which one to use, and if your payload is a UP then I
don't know where you would get a port.

On the other hand, I haven't the slightest clue what you're trying to
implement, I was just trying to figure it out based on the types :-)

Luke
_______________________________________________
Haskell-Cafe mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to