algorithms in scala