Scalaの限定継続で四天王問題を解いてみた

Scalaの限定継続でSICP4章のambっぽいものを作って四天王問題(勝手に命名)を解いてみた。

一応転載もしておく

A「Dがやられたようだな…」B「ククク…奴は我ら四天王の中でも最弱…」C「私はBよりも弱い…」A「そして私は最強ではない…」B「四天王の中に私よりも弱いものが最低でも二人いる…」C「私はAよりも強い…」 ※以上の条件から四天王を強い順に並べよ(5点)

コードはこんな感じ。思いのほかあっさり書けた。


ちなみに2.8.0betaのころはscala.util.continuationsではなくscala.continuationsだったらしく、その頃の記事を参考にしていたせいでimportできずに苦しんだのはないしょ。

あと備忘をかねてsbtの人向けにプロジェクトの設定を書いておく。

import sbt._

class MyProject(info: ProjectInfo) extends DefaultProject(info) with AutoCompilerPlugins
{
  val cont = compilerPlugin("org.scala-lang.plugins" % "continuations" % "2.8.0")
  override def compileOptions = super.compileOptions ++ compileOptions("-P:continuations:enable")
}