diff options
-rw-r--r-- | scala/censor.scala | 27 | ||||
-rw-r--r-- | scala/censor.txt | 4 | ||||
-rw-r--r-- | scala/foldl.scala | 4 |
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)) |