自作if式モドキ

lazyにすれば組み込みのifっぽい動きが出来るはず.

$ sml -Cparser.lazy-keyword=true (*起動*)
open Lazy
fun force ($ x) = x

infix ?
fun true  ? (t,f) = force t
  | false ? (t,f) = force f

条件が偽の場合

- (1=0) ? (lprint($"foo\n"), lprint($"bar\n"));
bar
val it = () : unit

条件が真の場合

- (1=1) ? (lprint($"foo\n"), lprint($"bar\n"));
foo
val it = () : unit

出来ました!\(^-^)/


まぁでも結局はどっかで($)を付けることになるヨネー

fun lazy lprint s = $ (print(force s))

とくにオチはない