Skip to content

Instantly share code, notes, and snippets.

@paulvictor
Last active February 8, 2019 08:41
Show Gist options
  • Select an option

  • Save paulvictor/c7d25b42e76799311726140aafa83a9f to your computer and use it in GitHub Desktop.

Select an option

Save paulvictor/c7d25b42e76799311726140aafa83a9f to your computer and use it in GitHub Desktop.
Translation of the latency function
pgLatency :: Array Page -> Array Event -> Int
pgLatency pages events =
snd <<<
runState
(for_
(pagesAndEventsSortedOnTime
(either
\p -> whenM ((\s -> fst s && isUsefulPage p) <$> get) (modify_ (snd >>> _ + p.latency))
\e -> whenM ((\s -> fst s && isUsefulEvent e) <$> get) (modify_ (fst >>> const true)))
)
) ( false /\ 0)
where
pagesAndEventsSortedOnTime =
sortWith
(_.at ||| _.at)
((Left <$> pages) <> (Right <$> events))
isUsefulPage p =
fromMaybe false $
((elem _ pgUrlList) <$> p.url) <|> ((elem _ pgTitleList) <$> p.title)
isUsefulEvent e =
fromMaybe false $
((elem _ eTrigger) <$> e.value) <|> ((elem _ pTrigger) <$> e.title)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment