Skip to content

Instantly share code, notes, and snippets.

@xuwei-k
xuwei-k / problem2.scala
Created November 13, 2012 13:01 — forked from daiksy/problem2.scala
Project Euler Probrem 2
/*
* http://projecteuler.net/problem=2
* http://odz.sakura.ne.jp/projecteuler/index.php?cmd=read&page=Problem%202
*/
val fib: List[Int] => List[Int] = {
case Nil | _ :: Nil => throw new IllegalArgumentException
case xs @ (a :: b :: tail) => {
val nextNum = a + b
if (nextNum >= 4000000) {
xs
@xuwei-k
xuwei-k / classmanifesttest.scala
Created August 31, 2012 15:26 — forked from rabitarochan/classmanifesttest.scala
ScalaのClassManifestについてハマった
// コンストラクタをプライベートにし、コンパニオンオブジェクト経由でのみ生成させる。
class ClassName[A] private (val clazz: Class[A]) {
// toString で、引数に指定されたクラスの名称を返す。
override def toString(): String = {
clazz.getName
}
}
object ClassName {
// Classを直接渡して生成する。
@xuwei-k
xuwei-k / not_tailrec.scala
Created June 26, 2012 16:32 — forked from j5ik2o/gist:2996293
リトライハンドラーの殴り書き
object RetryUtil {
case class RetryException(throwables: List[Throwable]) extends Exception
def retry[T](retryLimit: Int, retryInterval: Int, shouldCatch: Throwable => Boolean)(f: => T): T = {
// @annotation.tailrec
def _retry( errors: List[Throwable], f: => T):T = {
try {
f
} catch {
// Inversefizzbuzz
// http://www.jasq.org/2/post/2012/05/inverse-fizzbuzz.html
//
// fork from https://gist.github.com/2699068
object InverseFizzbuzz extends App {
def zzubzzif(pattern:Seq[String]) = {
def fizzbuzz(n:Int) = (n%3, n%5) match{
case (0,0) => "fizzbuzz"
case (0,_) => "fizz"
@xuwei-k
xuwei-k / README.markdown
Created December 14, 2011 11:14 — forked from kmizu/README.markdown
Scala Advent Calendar jp 2011 (12/07) by @kmizu

パーザコンビネータマニアックス

Scala Advent Calendar jp 2011の記事です。12/07に割り振られていたことに気づいていませんでしたorz。申し訳ありません。 さて、ネタを後で考えるつもりだったので迷ったのですが、直近で面白かったネタということでパーザコンビネータのちょっと変わった 使い方について紹介したいと思います。

さて、いきなり話が飛びますが、皆様はRubyのヒアドキュメントについてご存知でしょうか?

puts <