summaryrefslogtreecommitdiff
path: root/scala
diff options
context:
space:
mode:
authorGuillermo Ramos2012-05-06 21:54:20 +0200
committerGuillermo Ramos2012-05-06 21:54:20 +0200
commitb0ce25e6d3d77c18c958578fdbdae92654e46c93 (patch)
treeca0909a655f41061b1b6699ce531443be32502ad /scala
parente17d06cbdd0eae3fcc193c345f787a28cb031cea (diff)
download7l-b0ce25e6d3d77c18c958578fdbdae92654e46c93.tar.gz
[Scala] Día 2
Diffstat (limited to 'scala')
-rw-r--r--scala/censor.scala27
-rw-r--r--scala/censor.txt4
-rw-r--r--scala/foldl.scala4
3 files changed, 35 insertions, 0 deletions
diff --git a/scala/censor.scala b/scala/censor.scala
new file mode 100644
index 0000000..ed9bf0d
--- /dev/null
+++ b/scala/censor.scala
@@ -0,0 +1,27 @@
+import scala.collection.mutable.HashMap
+
+trait Censor {
+ var curses = new HashMap[String, String]
+
+ def loadCurses(s: String) = {
+ val lines = scala.io.Source.fromFile(s).getLines
+ lines.foreach(line => {val kv = line.split('='); curses(kv(0)) = kv(1)})
+ }
+
+ def nice(s: String) = {
+ var clean = s
+ curses.foreach(m => clean = clean.replaceAll(m._1, m._2))
+ clean
+ }
+}
+
+class Repeater extends Censor {
+ def repeatForever = {
+ while (true)
+ println(nice(readLine))
+ }
+}
+
+val myRepeater = new Repeater
+myRepeater.loadCurses("censor.txt")
+myRepeater.repeatForever
diff --git a/scala/censor.txt b/scala/censor.txt
new file mode 100644
index 0000000..915122b
--- /dev/null
+++ b/scala/censor.txt
@@ -0,0 +1,4 @@
+shoot=pucky
+darn=beans
+waka=blr
+r4g=master
diff --git a/scala/foldl.scala b/scala/foldl.scala
new file mode 100644
index 0000000..dd4c765
--- /dev/null
+++ b/scala/foldl.scala
@@ -0,0 +1,4 @@
+def sizeArrayString(list: Array[String]) = list.foldLeft(0)({(acc, elm) => acc+elm.size})
+
+val list = Array[String]("blr", "asdf", "zascaa")
+println(sizeArrayString(list))