Skip to content

Commit 02ddd84

Browse files
gustywallymathieu
authored andcommitted
+ Operators for map2 and map3 (#624)
1 parent 8cdc7c3 commit 02ddd84

File tree

1 file changed

+28
-0
lines changed

1 file changed

+28
-0
lines changed

src/FSharpPlus/Operators.fs

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -268,6 +268,34 @@ module Operators =
268268
/// <category index="2">Applicative</category>
269269
let inline map3 (f: 'T->'U->'V->'W) (x: '``ZipApplicative<'T>``) (y: '``ZipApplicative<'U>``) (z: '``ZipApplicative<'V>``) : '``ZipApplicative<'W>`` = Map3.Invoke f x y z
270270

271+
/// <summary>
272+
/// Applies 2 lifted arguments to a non-lifted function with pointwise and/or parallel semantics.
273+
/// Operator version of 'map2'.
274+
/// </summary>
275+
/// <category index="2">Applicative</category>
276+
let inline (<<||) (f: 'T->'U->'V) (x: '``ZipApplicative<'T>``, y: '``ZipApplicative<'U>``) : '``ZipApplicative<'V>`` = Map2.Invoke f x y
277+
278+
/// <summary>
279+
/// Applies 2 lifted arguments to a non-lifted function with pointwise and/or parallel semantics.
280+
/// Operator version of 'map2' but with arguments flipped.
281+
/// </summary>
282+
/// <category index="2">Applicative</category>
283+
let inline (||>>) (x: '``ZipApplicative<'T>``, y: '``ZipApplicative<'U>``) (f: 'T->'U->'V) : '``ZipApplicative<'V>`` = Map2.Invoke f x y
284+
285+
/// <summary>
286+
/// Applies 3 lifted arguments to a non-lifted function with pointwise and/or parallel semantics.
287+
/// Operator version of 'map3'.
288+
/// </summary>
289+
/// <category index="2">Applicative</category>
290+
let inline (<<|||) (f: 'T->'U->'V->'W) (x: '``ZipApplicative<'T>``, y: '``ZipApplicative<'U>``, z: '``ZipApplicative<'V>``) : '``ZipApplicative<'W>`` = Map3.Invoke f x y z
291+
292+
/// <summary>
293+
/// Applies 3 lifted arguments to a non-lifted function with pointwise and/or parallel semantics.
294+
/// Operator version of 'map3' but with arguments flipped.
295+
/// </summary>
296+
/// <category index="2">Applicative</category>
297+
let inline (|||>>) (x: '``ZipApplicative<'T>``, y: '``ZipApplicative<'U>``, z: '``ZipApplicative<'V>``) (f: 'T->'U->'V->'W) : '``ZipApplicative<'W>`` = Map3.Invoke f x y z
298+
271299

272300

273301
// Monad -----------------------------------------------------------

0 commit comments

Comments
 (0)