Mailing List Archive: 49091 messages
  • Home
  • Script library
  • AltME Archive
  • Mailing list
  • Articles Index
  • Site search

[REBOL] a new switch-like flow-control function

From: antonr::iinet::net::au at: 18-Dec-2003 1:00

I yearn (want), occasionally, a kind of any/switch-like flow-control function. What I came up with (works ok) is similar in function to what I want: do select reduce [ condition-1 [...] condition-2 [...] true [...] ; default code ] true It's kind of like ANY, in that it does the code associated with the first condition that returns true. I used it in a feel/detect function like so.. do select reduce [ event/shift [...] event/control [...] true [...] ; default ] true to handle shift-clicks, control-clicks and plain mouse clicks. But I would like it to be more like ANY. In ANY, the first evaluated value that is not none is considered "true" and returned. In the desired function, the first evaluated condition that is not none should have its associated code executed. (That's different to the above - conditions have to evaluate to true.) I should use such a function like this: any-switch [ condition-1 [...] condition-2 [...] true [] ] Hmm, maybe it should be a refinement:- switch/any ? On another note, today I had the occasion to write: face/parent-face/parent-face/parent-face/parent-face/parent-face Don't ask me the object hierarchy that leads to that expression. :) Anton.