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>