#!/usr/bin/ruby var ok_block = {|z| "ok -- #{z}" } assert_eq((ok_block \\ { "error" })(1), "ok -- 1") assert_eq((nil \\ {|x| "ok -- #{x}" })(2), "ok -- 2") assert_eq(({ "ok -- #{_}" } \\ { "error" })(3), "ok -- 3") assert_eq(({|x| x + 1 })(42), 43) assert_eq({|x| x + 1 }(42), 43) assert_eq((true ? func(x){ x.inc } : func(x){ x.dec })(42), 43) assert_eq((false ? func(x){ x.inc } : func(x){ x.dec })(42), 41) assert_eq(func(x){ x.inc } \\ func(x){ x.dec } -> call(42), 43) assert_eq(nil \\ func(x){ x.dec } -> call(42), 41) # Currently, this doesn't work # assert_eq(true ? func(x){ x.inc } : func(x){ x.dec } -> call(42), 43) say "** Test passed!"