forked from scala/scala
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathphonebook.scala
38 lines (29 loc) · 908 Bytes
/
phonebook.scala
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
package phonebook ;
object phonebook {
val labPhoneBook =
<phonebook>
<descr>
This is the <b>phonebook</b> of the
<a href="http://acme.org">ACME</a> corporation.
</descr>
<entry>
<name>Burak</name>
<phone where="work"> +41 21 693 68 67</phone>
<phone where="mobile">+41 79 602 23 23</phone>
</entry>
</phonebook>;
Console.println( labPhoneBook );
// XML is immutable - adding an element
import scala.xml.{ Node, Text };
def add( phonebook:Node, newEntry:Node ):Node = phonebook match {
case <phonebook>{ ch @ _* }</phonebook> =>
<phonebook>{ ch }{ newEntry }</phonebook>
}
val pb2 =
add( labPhoneBook,
<entry>
<name>Kim</name>
<phone where="work"> +41 21 111 11 11</phone>
</entry> );
def main(args:Array[String]) = Console.println( pb2 );
}