From 9827904a6aa6b649665cf78fa56716011fb37e6d Mon Sep 17 00:00:00 2001 From: iximeow Date: Mon, 2 Mar 2015 15:34:34 -0800 Subject: initial commit --- src/FunctionUtils.scala | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 src/FunctionUtils.scala (limited to 'src/FunctionUtils.scala') diff --git a/src/FunctionUtils.scala b/src/FunctionUtils.scala new file mode 100644 index 0000000..3d6610c --- /dev/null +++ b/src/FunctionUtils.scala @@ -0,0 +1,19 @@ +package ixee.cryptopals.utils + +object FunctionUtils { + // Because doing (_ f _).tupled confuses the inferencer... + def tup[A, B, C](f: (A, B) => C): ((A, B)) => C = f.tupled + + def ident[A]: A => A = { x => x } + + implicit class Compositor[A, B](f: A => B) { + def :|[C](g: B => C): A => C = f.andThen(g) + } + + implicit class Tap[A](x: A) { + def tap(f: A => Any): A = { + f(x) + x + } + } +} -- cgit v1.1