summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--DNA.scala18
1 files changed, 18 insertions, 0 deletions
diff --git a/DNA.scala b/DNA.scala
new file mode 100644
index 0000000..d382594
--- /dev/null
+++ b/DNA.scala
@@ -0,0 +1,18 @@
+import io._
+
+def countNucleotides (dna: Stream[Char]): List[Int] = {
+ var a, c, g, t = 0
+ for (base <- dna) {
+ base match {
+ case 'A' => a += 1
+ case 'C' => c += 1
+ case 'G' => g += 1
+ case 'T' => t += 1
+ case c => println("Unknown character: " + c)
+ }
+ }
+ List(a, c, g, t)
+}
+
+val dna = Source.fromInputStream(System.in).toStream.takeWhile(_ != '\n')
+println(countNucleotides(dna).mkString(" "))