Skip to content

Instantly share code, notes, and snippets.

class Ord[T](val lessThan: (T, T) => Boolean)
class Compare[T](x: T)(implicit ord: Ord[T]) {
def < (that: T) = ord.lessThan(x, that)
def > (that: T) = ord.lessThan(that, x)
}
implicit def anyToCompare[T: Ord](x: T) = new Compare(x)
val tiles = Map[Char, Int](
'a' -> 1,
'b' -> 3,
'c' -> 3,
'd' -> 2
// etc.
)
def main(args: Array[String]) {
var out = Vector[String]()
@luigip
luigip / gist:3270831
Created August 6, 2012 05:02
Euler 54
package ijeuler
/* Disclaimer: this code is a bit crappy since I wrote it ages ago
and it was written very quickly based on an even crappier poker hand
evaluator I wrote even longer ago in VBA
*/
object P054 extends App {
object Rank extends Enumeration {
@luigip
luigip / multiPartition
Created July 10, 2012 00:29
multiPartion for non-Array collections
def multiPartition[T, C[X] <: Traversable[X]](xs: C[T])(fs: T => Boolean *)(implicit cbf: CanBuildFrom[C[_],T,C[_]]) = {
val builders = Vector.fill(fs.length)(cbf())
for (e <- xs) {
val i = fs.indexWhere(f => f(e))
if (i >= 0) builders(i) += e
}
builders.map(_.result)
}