From 6731749baadb46eda33393abbff36daae302cac8 Mon Sep 17 00:00:00 2001 From: Siraaj Khandkar Date: Sun, 10 Nov 2013 11:44:38 -0500 Subject: [PATCH] Add result type module and define pipe. --- src/hope_result.erl | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 src/hope_result.erl diff --git a/src/hope_result.erl b/src/hope_result.erl new file mode 100644 index 0000000..405f2e0 --- /dev/null +++ b/src/hope_result.erl @@ -0,0 +1,18 @@ +-module(hope_result). + +-export_type([ t/2 + ]). + +-export([ pipe/2 + ]). + + +-type t(A, B) :: {ok, A} | {error, B}. + + +pipe([] , X) -> X; +pipe([F|Fs], X) -> + case F(X) + of {error, _}=E -> E + ; {ok, Y} -> pipe(Fs, Y) + end. -- 2.20.1