Skip to content

Instantly share code, notes, and snippets.

View ryanoneill's full-sized avatar

Ryan O'Neill ryanoneill

  • San Francisco, CA
View GitHub Profile
@ryanoneill
ryanoneill / FizzBuzz.scala
Created April 2, 2012 16:24
FizzBuzz in Scala
object FizzBuzz {
def main(args: Array[String]) {
1 to 100 foreach printlnEncoded
}
def encode(value: Int) =
value match {
case x if (x % 15 == 0) => "FizzBuzz"
case y if (y % 5 == 0) => "Buzz"
case z if (z % 3 == 0) => "Fizz"
@ryanoneill
ryanoneill / Problem01.scala
Created April 3, 2012 18:45
Ninety-Nine Scala Problems: Problem 01 - Find the last element of a list.
// From: http://aperiodic.net/phil/scala/s-99/
// P01 (*) Find the last element of a list.
// Example:
// scala> last(List(1, 1, 2, 3, 5, 8))
// res0: Int = 8
object Problem01 {
def main(args: Array[String]) {
val values = List(1, 1, 2, 3, 5, 8)
@ryanoneill
ryanoneill / Problem02.scala
Created April 3, 2012 18:51
Ninety-Nine Scala Problems: Problem 02 - Find the last but one element of a list.
// From: http://aperiodic.net/phil/scala/s-99/
// P02 (*) Find the last but one element of a list.
// Example:
// scala> penultimate(List(1, 1, 2, 3, 5, 8))
// res0: Int = 5
object Problem02 {
def main(args: Array[String]) {
val values = List(1, 1, 2, 3, 5, 8)
@ryanoneill
ryanoneill / Problem03.scala
Created April 3, 2012 19:24
Ninety-Nine Scala Problems: Problem 03 - Find the Kth element of a list.
// From: http://aperiodic.net/phil/scala/s-99/
// P03 (*) Find the Kth element of a list.
// By convention, the first element in the list is element 0.
// Example:
// scala> nth(2, List(1, 1, 2, 3, 5, 8))
// res0: Int = 2
object Problem03 {
@ryanoneill
ryanoneill / Problem04.scala
Created April 3, 2012 19:27
Ninety-Nine Scala Problems: Problem 04 - Find the number of elements of a list.
// From: http://aperiodic.net/phil/scala/s-99/
// P04 (*) Find the number of elements of a list.
// Example:
// scala> length(List(1, 1, 2, 3, 5, 8))
// res0: Int = 6
object Problem04 {
def main(args: Array[String]) {
val values = List(1, 1, 2, 3, 5, 8)
@ryanoneill
ryanoneill / Problem05.scala
Created April 3, 2012 19:32
Ninety-Nine Scala Problems: Problem 05 - Reverse a list.
// From: http://aperiodic.net/phil/scala/s-99/
// P05 (*) Reverse a list.
// Example:
// scala> reverse(List(1, 1, 2, 3, 5, 8))
// res0: List[Int] = List(8, 5, 3, 2, 1, 1)
object Problem05 {
def main(args: Array[String]) {
val values = List(1, 1, 2, 3, 5, 8)
@ryanoneill
ryanoneill / Problem06.scala
Created April 3, 2012 19:37
Ninety-Nine Scala Problems: Problem 06 - Find out whether a list is a palindrome.
// http://aperiodic.net/phil/scala/s-99/
// P06 (*) Find out whether a list is a palindrome.
// Example:
// scala> isPalindrome(List(1, 2, 3, 2, 1))
// res0: Boolean = true
object Problem06 {
def main(args: Array[String]) {
val values = List(1, 2, 3, 2, 1)
@ryanoneill
ryanoneill / Problem07.scala
Created April 3, 2012 19:39
Ninety-Nine Scala Problems: Problem 07 - Flatten a nested list structure.
// http://aperiodic.net/phil/scala/s-99/
// P07 (**) Flatten a nested list structure.
// Example:
// scala> flatten(List(List(1, 1), 2, List(3, List(5, 8))))
// res0: List[Any] = List(1, 1, 2, 3, 5, 8)
object Problem07 {
def main(args: Array[String]) {
val values = List(List(1, 1), 2, List(3, List(5, 8)))
@ryanoneill
ryanoneill / Problem08.scala
Created April 3, 2012 19:48
Ninety-Nine Scala Problems: Problem 08 - Eliminate consecutive duplicates of list elements.
// http://aperiodic.net/phil/scala/s-99/
// P08 (**) Eliminate consecutive duplicates of list elements.
// If a list contains repeated elements they should be replaced with a single copy of the element. The order of the elements should not be changed.
// Example:
// scala> compress(List('a, 'a, 'a, 'a, 'b, 'c, 'c, 'a, 'a, 'd, 'e, 'e, 'e, 'e))
// res0: List[Symbol] = List('a, 'b, 'c, 'a, 'd, 'e)
object Problem08 {
@ryanoneill
ryanoneill / Problem09.scala
Created April 3, 2012 20:02
Ninety-Nine Scala Problems: Problem 09 - Pack consecutive duplicates of list elements into sublists.
// http://aperiodic.net/phil/scala/s-99/
// P09 (**) Pack consecutive duplicates of list elements into sublists.
// If a list contains repeated elements they should be placed in separate sublists.
// Example:
// scala> pack(List('a, 'a, 'a, 'a, 'b, 'c, 'c, 'a, 'a, 'd, 'e, 'e, 'e, 'e))
// res0: List[List[Symbol]] = List(List('a, 'a, 'a, 'a), List('b), List('c, 'c), List('a, 'a), List('d), List('e, 'e, 'e, 'e))
object Problem09 {