## 2015年8月17日月曜日

### Scala - Core Scala - Functions(difference(2D), Tuples)

Learning Scala: Practical Functional Programming for the JVM (Jason Swartz (著)、O'Reilly Media)のPart Ⅰ. (Core Scala)、Chapter 4.(Functions)、Exercises 6.(No. 1471)を解いてみる。

その他参考書籍

Exercises 6.(No. 1471)

コード(Emacs)

``` def difference(x:(Double, Double), y:(Double, Double)):(Double, Double) = (y._1 - x._1, y._2 - x._2) for (x1 <- 0 to 2) { for (y1 <- 0 to 2) { for (x2 <- 0 until 2) { for (y2 <- 0 until 2) { println(s"(\$x1, \$y1), (\$x2, \$y2): \${difference((x1, y1), (x2, y2))}") } } } } ```

```\$ scala-2.11 sample6.scala
(0, 0), (0, 0): (0.0,0.0)
(0, 0), (0, 1): (0.0,1.0)
(0, 0), (1, 0): (1.0,0.0)
(0, 0), (1, 1): (1.0,1.0)
(0, 1), (0, 0): (0.0,-1.0)
(0, 1), (0, 1): (0.0,0.0)
(0, 1), (1, 0): (1.0,-1.0)
(0, 1), (1, 1): (1.0,0.0)
(0, 2), (0, 0): (0.0,-2.0)
(0, 2), (0, 1): (0.0,-1.0)
(0, 2), (1, 0): (1.0,-2.0)
(0, 2), (1, 1): (1.0,-1.0)
(1, 0), (0, 0): (-1.0,0.0)
(1, 0), (0, 1): (-1.0,1.0)
(1, 0), (1, 0): (0.0,0.0)
(1, 0), (1, 1): (0.0,1.0)
(1, 1), (0, 0): (-1.0,-1.0)
(1, 1), (0, 1): (-1.0,0.0)
(1, 1), (1, 0): (0.0,-1.0)
(1, 1), (1, 1): (0.0,0.0)
(1, 2), (0, 0): (-1.0,-2.0)
(1, 2), (0, 1): (-1.0,-1.0)
(1, 2), (1, 0): (0.0,-2.0)
(1, 2), (1, 1): (0.0,-1.0)
(2, 0), (0, 0): (-2.0,0.0)
(2, 0), (0, 1): (-2.0,1.0)
(2, 0), (1, 0): (-1.0,0.0)
(2, 0), (1, 1): (-1.0,1.0)
(2, 1), (0, 0): (-2.0,-1.0)
(2, 1), (0, 1): (-2.0,0.0)
(2, 1), (1, 0): (-1.0,-1.0)
(2, 1), (1, 1): (-1.0,0.0)
(2, 2), (0, 0): (-2.0,-2.0)
(2, 2), (0, 1): (-2.0,-1.0)
(2, 2), (1, 0): (-1.0,-2.0)
(2, 2), (1, 1): (-1.0,-1.0)
\$
```