netserver/Miscutils.hs
changeset 1466 c68b0a0969d3
parent 1461 87e5a6c3882c
child 1478 8bfb417d165e
equal deleted inserted replaced
1465:08e98772235c 1466:c68b0a0969d3
    79 deleteBy2t eq x (y:ys) = if y `eq` x then ys else y : deleteBy2t eq x ys
    79 deleteBy2t eq x (y:ys) = if y `eq` x then ys else y : deleteBy2t eq x ys
    80 
    80 
    81 deleteFirstsBy2t :: (a -> b -> Bool) -> [a] -> [b] -> [a]
    81 deleteFirstsBy2t :: (a -> b -> Bool) -> [a] -> [b] -> [a]
    82 deleteFirstsBy2t eq =  foldl (flip (deleteBy2t eq))
    82 deleteFirstsBy2t eq =  foldl (flip (deleteBy2t eq))
    83 
    83 
       
    84 clientByHandle :: Handle -> [ClientInfo] -> Maybe ClientInfo
       
    85 clientByHandle chandle clients = find (\c -> handle c == chandle) clients
       
    86 
    84 sameRoom :: HandlesSelector
    87 sameRoom :: HandlesSelector
    85 sameRoom client clients rooms = map handle $ filter (\ci -> room ci == room client) clients
    88 sameRoom client clients rooms = map handle $ filter (\ci -> room ci == room client) clients
    86 
    89 
    87 othersInRoom :: HandlesSelector
    90 othersInRoom :: HandlesSelector
    88 othersInRoom client clients rooms = map handle $ filter (client /=) $ filter (\ci -> room ci == room client) clients
    91 othersInRoom client clients rooms = map handle $ filter (client /=) $ filter (\ci -> room ci == room client) clients