Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
10
Task/FizzBuzz/Scala/fizzbuzz-1.scala
Normal file
10
Task/FizzBuzz/Scala/fizzbuzz-1.scala
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
object FizzBuzz extends App {
|
||||
1 to 100 foreach { n =>
|
||||
println((n % 3, n % 5) match {
|
||||
case (0, 0) => "FizzBuzz"
|
||||
case (0, _) => "Fizz"
|
||||
case (_, 0) => "Buzz"
|
||||
case _ => n
|
||||
})
|
||||
}
|
||||
}
|
||||
7
Task/FizzBuzz/Scala/fizzbuzz-2.scala
Normal file
7
Task/FizzBuzz/Scala/fizzbuzz-2.scala
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
def replaceMultiples(x: Int, rs: (Int, String)*): Either[Int, String] =
|
||||
rs map { case (n, s) => Either cond(x % n == 0, s, x)} reduceLeft ((a, b) =>
|
||||
a fold(_ => b, s => b fold(_ => a, t => Right(s + t))))
|
||||
|
||||
def fizzbuzz = replaceMultiples(_: Int, 3 -> "Fizz", 5 -> "Buzz") fold(_.toString, identity)
|
||||
|
||||
1 to 100 map fizzbuzz foreach println
|
||||
2
Task/FizzBuzz/Scala/fizzbuzz-3.scala
Normal file
2
Task/FizzBuzz/Scala/fizzbuzz-3.scala
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
def f(n: Int, div: Int, met: String, notMet: String): String = if (n % div == 0) met else notMet
|
||||
for (i <- 1 to 100) println(f(i, 15, "FizzBuzz", f(i, 3, "Fizz", f(i, 5, "Buzz", i.toString))))
|
||||
1
Task/FizzBuzz/Scala/fizzbuzz-4.scala
Normal file
1
Task/FizzBuzz/Scala/fizzbuzz-4.scala
Normal file
|
|
@ -0,0 +1 @@
|
|||
for (i <- 1 to 100) println(Seq(15 -> "FizzBuzz", 3 -> "Fizz", 5 -> "Buzz").find(i % _._1 == 0).map(_._2).getOrElse(i))
|
||||
7
Task/FizzBuzz/Scala/fizzbuzz-5.scala
Normal file
7
Task/FizzBuzz/Scala/fizzbuzz-5.scala
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
def fizzBuzzTerm(n: Int): String =
|
||||
if (n % 15 == 0) "FizzBuzz"
|
||||
else if (n % 3 == 0) "Fizz"
|
||||
else if (n % 5 == 0) "Buzz"
|
||||
else n.toString
|
||||
|
||||
def fizzBuzz(): Unit = LazyList.from(1).take(100).map(fizzBuzzTerm).foreach(println)
|
||||
14
Task/FizzBuzz/Scala/fizzbuzz-6.scala
Normal file
14
Task/FizzBuzz/Scala/fizzbuzz-6.scala
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
def fizzBuzzTerm(n: Int): String | Int = // union types
|
||||
(n % 3, n % 5) match // optional semantic indentation; no braces
|
||||
case (0, 0) => "FizzBuzz"
|
||||
case (0, _) => "Fizz"
|
||||
case (_, 0) => "Buzz"
|
||||
case _ => n // no need for `.toString`, thanks to union type
|
||||
end match // optional `end` keyword, with what it's ending
|
||||
end fizzBuzzTerm // `end` also usable for identifiers
|
||||
|
||||
val fizzBuzz = // no namespace object is required; all top level
|
||||
LazyList.from(1).map(fizzBuzzTerm)
|
||||
|
||||
@main def run(): Unit = // @main for main method; can take custom args
|
||||
fizzBuzz.take(100).foreach(println)
|
||||
Loading…
Add table
Add a link
Reference in a new issue