Anonymous user
Pascal's triangle: Difference between revisions
Scala contribution maintained.
(Rust) |
(Scala contribution maintained.) |
||
Line 4,200:
=={{header|Scala}}==
===Functional solutions===
====Summing: Recursive row definition====
<lang scala>
def tri(row: Int): List[Int] =
case 1 => List(1)
case n: Int =>
}</lang>▼
▲</lang>
Function to pretty print n rows:
<lang scala>def
<lang scala>▼
▲def prettytri(n:Int) = (1 to n) foreach {i=>print(" "*(n-i)); tri(i) map (c=>print(c+" ")); println}
prettyTri(5)</lang>
{{Out}}
<pre> 1▼
▲<pre>
1 2 1
1 3 3 1
1 4
====Summing: Scala Stream (Recursive & Memoization)====
▲ 1 3 3 1
<lang Scala>object Blaise extends App {
def pascalTriangle(): Stream[Vector[Int]] =
Vector(1) #:: Stream.iterate(Vector(1, 1))(1 +: _.sliding(2).map(_.sum).toVector :+ 1)
val output = pascalTriangle().take(15).map(_.mkString(" "))
val longest = output.last.length
println("Pascal's Triangle")
output.foreach(line => println(s"${" " * ((longest - line.length) / 2)}$line"))
{{Out}}See it in running in your browser by [https://scalafiddle.io/sf/8VqiX0P/1 ScalaFiddle (JavaScript)] or by [https://scastie.scala-lang.org/c3dDWMCcT3eoydy6QJcWCw Scastie (JVM)].
=={{header|Scheme}}==
|