; Lazy evaluation of multiple 'if-s.

Ifs: function [Ifs [block!] /Default Case [block!]] [Block] [
    while [not empty? Ifs] [
        Block: do/next Ifs
        if first Block [return do first second Block]
        Ifs: next second Block
        ]
    if Default [return do Case]
    none
    ]

print Ifs/Default [
    X < 0 [-1]
    X = 0 [0]
    (0 < X) and (X < 10) [+1]
    ] ["Much bigger!"]

It's a lot like Ladislav's version.

Andrew Martin
ICQ: 26227169
[EMAIL PROTECTED]
http://members.xoom.com/AndrewMartin/
-><-

Reply via email to