Skip to content

Instantly share code, notes, and snippets.

View daiksy's full-sized avatar

KASUYA, Daisuke daiksy

View GitHub Profile
@daiksy
daiksy / problem4.scala
Created November 14, 2012 15:42
Project Euler Problem 4
/**
* http://projecteuler.net/problem=4
* http://odz.sakura.ne.jp/projecteuler/index.php?cmd=read&page=Problem%204
*/
val xs = List.range(999, 99, - 1)
val ys = List.range(999, 99, - 1)
val isPalindromicNumber = (n: Int) => {
n.toString == n.toString.reverse
}
@daiksy
daiksy / problem3.scala
Created November 14, 2012 14:38
Project Euler Problem 3
/**
* http://projecteuler.net/problem=3
* http://odz.sakura.ne.jp/projecteuler/index.php?cmd=read&page=Problem%203
*/
def maxPrime(i: Long, k: Long): Long = {
if (i > k) {
if (i % k == 0) {
maxPrime(i / k , k)
} else {
maxPrime(i, k + 1)
@daiksy
daiksy / problem1.hs
Created November 13, 2012 14:36
Project Euler Problem 1 by Haslell
/**
* http://projecteuler.net/problem=1
* http://odz.sakura.ne.jp/projecteuler/index.php?cmd=read&page=Problem%201
*/
sum $ filter (\x -> mod x 3 == 0 || mod x 5 == 0) [1 .. 999]
@daiksy
daiksy / problem2.scala
Created November 13, 2012 12:46
Project Euler Problem 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] = {xs =>
xs match {
case Nil => throw new IllegalArgumentException
case i::Nil => throw new IllegalArgumentException
case _ => {
val nextNum = xs.head + xs.tail.head
@daiksy
daiksy / problem1.scala
Created November 13, 2012 12:08
Project Euler Problem 1
/**
* http://projecteuler.net/problem=1
* http://odz.sakura.ne.jp/projecteuler/index.php?cmd=read&page=Problem%201
*/
(1 to 999) filter(i => i % 3 == 0 || i % 5 == 0) sum
@daiksy
daiksy / description.md
Created November 1, 2012 16:05
reverseを書いてみた
  def reverse[A](xs: List[A]): List[A] = {
    (List.empty[A] /: xs){(x, y) => y :: x}
  }

の方が読みやすい?

でも右畳込みの場合, この書き方だとWindowsでバックスラッシュが円記号になるから,直感的じゃなくなるんだよな…

@daiksy
daiksy / collatz_tailrec.scala
Created October 31, 2012 15:35
コラッツ数列のScala実装(末尾再帰版)
/**
* 『すごいHaskell』で実装例が出ていたコラッツ数列をScalaで実装
*
* https://gist.github.com/3986524 が末尾再帰になってないので
* なおしてみた.
*
* コラッツ数列とは:
* ・任意の自然数から開始する.
* ・数が1ならば,終了.
* ・数が偶数ならば,2で割る.
@daiksy
daiksy / collatz.scala
Created October 31, 2012 11:20
Scalaでコラッツ数列を実装してみた。
/**
* 『すごいHaskell』で実装例が出ていたコラッツ数列をScalaで実装
*
* コラッツ数列とは:
* ・任意の自然数から開始する
* ・数が1ならば、終了
* ・数が偶数ならば、2で割る
* ・数が奇数ならが、3倍して1を足す
* ・新しい値でこのアルゴリズムを繰り返す
*
@daiksy
daiksy / gist:3676142
Created September 8, 2012 15:36
markdownの実験

##gistでmarkdownを書くテスト

val tmp = if (i == 0) {
	"hello"
} else {
	"bye"
}
@daiksy
daiksy / gist:3323803
Created August 11, 2012 10:56
素数のときにJoJo
object jojo extends App {
def isPrime(n: Int) = {
if (n < 2) {
false
} else {
(2 to n - 1).exists(n % _ == 0) == false
}
}