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