diff --git "a/Scala-\346\235\245\351\200\222\345\275\222\344\270\200\344\270\213\345\220\247" "b/Scala-\346\235\245\351\200\222\345\275\222\344\270\200\344\270\213\345\220\247" new file mode 100644 index 0000000000000000000000000000000000000000..45395303dbddb9aef00b7db06b8c882c5e9f4334 --- /dev/null +++ "b/Scala-\346\235\245\351\200\222\345\275\222\344\270\200\344\270\213\345\220\247" @@ -0,0 +1,10 @@ +sealed class Node(subnodes: Traversable[Node]) extends Traversable[Node] { + def foreach[U](f: Node => U) { + f(this) + subnodes foreach f + } +} + +case class Atom(id: String) extends Node(Nil) + +case class Molecule(atoms: List[Node]) extends Node(atoms)