SOE ex.9.1


{-
(Polygon pts) `containsS` p
  = let leftOfList   = map isLeftOfp (zip pts (tail pts ++ [head pts]))
        isLeftOfp p' = isLeftOf p p'
    in and leftOfList
-}

{-
(Polygon pts) `containsS` p
  = let leftOfList   = map isLeftOfp (zip pts (tail pts ++ [head pts]))
        isLeftOfp = isLeftOf p  -- eta reduction
    in and leftOfList
-}

(Polygon pts) `containsS` p
  = and $ map (isLeftOf p) (zip pts (tail pts ++ [head pts]))

Leave a Reply