Current section

Files

Jump to
gleam_stdlib src gleam@pair.erl
Raw

src/gleam@pair.erl

-module(gleam@pair).
-compile([no_auto_import, nowarn_unused_vars]).
-export([first/1, second/1, swap/1, map_first/2, map_second/2, new/2]).
-spec first({GJ, any()}) -> GJ.
first(Pair) ->
{A, _} = Pair,
A.
-spec second({any(), GM}) -> GM.
second(Pair) ->
{_, A} = Pair,
A.
-spec swap({GN, GO}) -> {GO, GN}.
swap(Pair) ->
{A, B} = Pair,
{B, A}.
-spec map_first({GP, GQ}, fun((GP) -> GR)) -> {GR, GQ}.
map_first(Pair, Fun) ->
{A, B} = Pair,
{Fun(A), B}.
-spec map_second({GS, GT}, fun((GT) -> GU)) -> {GS, GU}.
map_second(Pair, Fun) ->
{A, B} = Pair,
{A, Fun(B)}.
-spec new(GV, GW) -> {GV, GW}.
new(First, Second) ->
{First, Second}.