static void Main() { SideEffect.Wrap(() => new [] { 4, 6, 2, 7, 8, 1 }.FromIEnumerable()) .Bind(nums => SideEffect.PrintString("Original:") .Bind(_ => SideEffect.PrintNumbers(nums)) .Bind(_ => SideEffect.PrintString("Reversed:")) .Bind(_ => SideEffect.PrintNumbers(nums.Reverse())) .Bind(_ => SideEffect.PrintString("Sorted:")) .Bind(_ => SideEffect.PrintNumbers(nums.QuickSort()))) .Execute(); }
static void DivisionTest() { var x = 18.ToLazy(); var y = 2.ToLazy(); var z = 3.ToLazy(); Optional.Value(x) .Bind(v => Divide(v, y)) .Bind(v => Divide(v, z)) .WithOptional( SideEffect.PrintString("Cannot divide by zero"), SideEffect.PrintNumber) .Execute(); }