600000007

プログラムと折り紙のブログです。

2012-03-01から1ヶ月間の記事一覧

Scala by Example‎ > 演習9.1.1解答案

Scala by Example > 演習9.1.1の解答案です。 def isort(xs: List[Int]): List[Int] = xs match { case List() => List() case x :: xs1 => insert(x, isort(xs1)) } def insert(x: Int, xs: List[Int]): List[Int] = xs match { case List() => List(x) cas…

Scala by Example‎ > 演習7.2.2解答案

Scala by Example > 演習7.2.2の解答案です。 abstract class IntTree case object EmptyTree extends IntTree case class Node(elem: Int, left: IntTree, right: IntTree) extends IntTree def insert(t: IntTree, v: Int): IntTree = t match { case Node…

Scala by Example‎ > 演習6.0.3解答案その2

Scala by Example > 演習6.0.3の解答案その2です。ヒントその2をベースにした解答です。 あるいは3つの子クラスとして Zero を 0 に、Succ を正の数のため、Pred を負の数のために使い、既知の Nat 実装を Integer へ一般化できます ちょっと意味が分からな…

Scala by Example‎ > 演習6.0.2解答案 その1

このScala by Example‎ > 演習6.0.2のNat、Succは自然数の定義でもあるペアの公理まんまですね。 公理を限りなく数式に近い形でプログラムで表現できるのはまさに関数型ならではなのでしょうか。Succの実装がよく分からない…と思ったら、これも原文と違っち…

Scala by Example‎ > 演習6.0.2解答案

Scala by Example > 演習6.0.2の解答案です。 trait IntSet { def incl(x: Int): IntSet def contains(x: Int): Boolean def union(set: IntSet): IntSet def intersection(set: IntSet): IntSet def excl(x: Int): IntSet def isEmpty: Boolean } class Emp…

Scala by Example‎ > 演習6.0.1解答案

Scala by Example‎ > 演習6.0.1の解答案です。これも翻訳がちょっと分かりにくかったのですが、要するに和集合と積集合を求めよ、ということですね。 trait IntSet { def incl(x: Int): IntSet def contains(x: Int): Boolean def union(set: IntSet): IntSe…