diff --git a/fn/option.go b/fn/option.go index 4d32d3e2e..f02f82c8a 100644 --- a/fn/option.go +++ b/fn/option.go @@ -133,11 +133,11 @@ func FlattenOption[A any](oo Option[Option[A]]) Option[A] { return oo.some } -// ChainOption transforms a function A -> Option[B] into one that accepts an +// FlatMapOption transforms a function A -> Option[B] into one that accepts an // Option[A] as an argument. // -// ChainOption : (A -> Option[B]) -> Option[A] -> Option[B]. -func ChainOption[A, B any](f func(A) Option[B]) func(Option[A]) Option[B] { +// FlatMapOption : (A -> Option[B]) -> Option[A] -> Option[B]. +func FlatMapOption[A, B any](f func(A) Option[B]) func(Option[A]) Option[B] { return func(o Option[A]) Option[B] { if o.isSome { return f(o.some) diff --git a/fn/slice_test.go b/fn/slice_test.go index 961196973..7269f801e 100644 --- a/fn/slice_test.go +++ b/fn/slice_test.go @@ -383,7 +383,7 @@ func TestPropLastTailIsLast(t *testing.T) { return true } - return Last(s) == ChainOption(Last[uint8])(Tail(s)) + return Last(s) == FlatMapOption(Last[uint8])(Tail(s)) } require.NoError(t, quick.Check(f, nil)) @@ -396,7 +396,7 @@ func TestPropHeadInitIsHead(t *testing.T) { return true } - return Head(s) == ChainOption(Head[uint8])(Init(s)) + return Head(s) == FlatMapOption(Head[uint8])(Init(s)) } require.NoError(t, quick.Check(f, nil))