Yet another Scala view to SICP