Mercurial > feed
changeset 23:e1e451cf85bb tip
Simplify Reddit example more
author | Adam Chlipala <adam@chlipala.net> |
---|---|
date | Sat, 29 Sep 2012 10:34:11 -0400 |
parents | 923e097e9ba3 |
children | |
files | tests/reddit.ur |
diffstat | 1 files changed, 13 insertions(+), 14 deletions(-) [+] |
line wrap: on
line diff
--- a/tests/reddit.ur Sat Sep 29 10:32:44 2012 -0400 +++ b/tests/reddit.ur Sat Sep 29 10:34:11 2012 -0400 @@ -1,24 +1,23 @@ fun main () = doc <- Feed.fetch "http://www.reddit.com/?limit=30"; - acc <- Feed.app' (Feed.tree (Feed.tagAOR "div" {DataUps = "data-ups", Class = "class"} {Style = "style"}) - (Feed.tagAOR "a" {Href = "href", Class = "class"} {Style = "style"})) - (fn (div, a) (count, list) => - return (if count >= 30 - || not (String.isPrefix {Full = div.Class, Prefix = " thing "}) - || Option.isSome (String.sindex {Haystack = div.Class, Needle = "promoted"}) - || div.Style = Some "display:none" - || a.Class <> "title " - || a.Style = Some "display:none" then - (count, list) - else - (count + 1, a.Href :: list))) - doc (0, []); + ls <- Feed.app' (Feed.tree (Feed.tagAOR "div" {DataUps = "data-ups", Class = "class"} {Style = "style"}) + (Feed.tagAOR "a" {Href = "href", Class = "class"} {Style = "style"})) + (fn (div, a) ls => + return (if not (String.isPrefix {Full = div.Class, Prefix = " thing "}) + || Option.isSome (String.sindex {Haystack = div.Class, Needle = "promoted"}) + || div.Style = Some "display:none" + || a.Class <> "title " + || a.Style = Some "display:none" then + ls + else + a.Href :: ls)) + doc []; return <xml><body> <h1>Top 30 Reddit Links</h1> <ol> - {List.mapX (fn url => <xml><li>{[url]}</li></xml>) (List.rev acc.2)} + {List.mapX (fn url => <xml><li>{[url]}</li></xml>) (List.rev ls)} </ol> </body></xml>