From 38cb67a63c915e436a2169e42004b445ca32f488 Mon Sep 17 00:00:00 2001 From: Danny Yoo Date: Mon, 12 Sep 2011 12:17:40 -0400 Subject: [PATCH] trying to figure out where the infinite loop is coming from in forward-backward movement --- tests/more-tests/view.expected | 2 + tests/more-tests/view.rkt | 6 ++- .../forward-backward/forward-backward.rkt | 48 +++++++++++++++++++ .../examples/forward-backward/index.html | 26 ++++++++++ 4 files changed, 81 insertions(+), 1 deletion(-) create mode 100644 web-world/examples/forward-backward/forward-backward.rkt create mode 100644 web-world/examples/forward-backward/index.html diff --git a/tests/more-tests/view.expected b/tests/more-tests/view.expected index 2a2f3ed..bf17d78 100644 --- a/tests/more-tests/view.expected +++ b/tests/more-tests/view.expected @@ -51,3 +51,5 @@ false "remove" (html (head) (body "some text")) "some text" + +"forward and backward" diff --git a/tests/more-tests/view.rkt b/tests/more-tests/view.rkt index 57dda5a..e6521be 100644 --- a/tests/more-tests/view.rkt +++ b/tests/more-tests/view.rkt @@ -248,4 +248,8 @@ (type "text") (value "this is a message"))) "some text")))) - "my-field"))) \ No newline at end of file + "my-field"))) + + +(newline) +"forward and backward" diff --git a/web-world/examples/forward-backward/forward-backward.rkt b/web-world/examples/forward-backward/forward-backward.rkt new file mode 100644 index 0000000..8f2365c --- /dev/null +++ b/web-world/examples/forward-backward/forward-backward.rkt @@ -0,0 +1,48 @@ +#lang planet dyoo/whalesong + +(require (planet dyoo/whalesong/resource) + (planet dyoo/whalesong/web-world)) + +(define-resource index.html) + +(define (go-forward world dom) + (add1 world)) + +(define (go-backward world dom) + (max (sub1 world) 0)) + + +(define (clear-all a-view) + (define updated-view (update-view-css a-view "border" "none")) + (cond + [(view-forward? updated-view) + (clear-all (view-forward updated-view))] + [else + updated-view])) + +(define (iterate n f x) + (if (= n 0) + x + (iterate (sub1 n ) f (f x)))) + +(define (draw world dom) + (update-view-css (iterate world + view-forward + (clear-all dom)) + "border" + "1px solid blue")) + +(define my-initial-view (view-bind + (view-focus + (view-bind + (view-focus (->view index.html) + "forward") + "click" + go-forward) + "backward") + "click" + go-backward)) + +(big-bang 0 + (initial-view my-initial-view) + (to-draw draw)) \ No newline at end of file diff --git a/web-world/examples/forward-backward/index.html b/web-world/examples/forward-backward/index.html new file mode 100644 index 0000000..8f05ae4 --- /dev/null +++ b/web-world/examples/forward-backward/index.html @@ -0,0 +1,26 @@ + +Test + +

This is a test

+ + + + + + + + +
First Row
Middle Row
Last Row
+ + + +