vkostyukov / scalacaster Scala 1.5K 315 Purely Functional Algorithms and Data Structures in Scala scala algorithm okasaki functional-programming