Skip to content

Instantly share code, notes, and snippets.

View kmizu's full-sized avatar

Kota Mizushima kmizu

View GitHub Profile
object Factorial {
def fact(n: Int) = (1 to n).foldLeft(1)(_*_)
def main(args: Array[String]) = {
val n = if(args.length == 0) 1 else args(0).toInt
1 to n foreach {i => println(i + "! = " + fact(i))}
}
}
class Foo {
import scala.collection.mutable.ArrayBuffer
val elements = List(1,2,3)
//ClassManifest is needed
def map[T:ClassManifest](block: Int => T) = {
val vals = ArrayBuffer[T]()
elements foreach{ i => vals += block(i) }
vals.toArray
}
}
@kmizu
kmizu / MiniParser.scala
Created November 8, 2011 14:15 — forked from kishida/MiniParser.scala
Mini parser with parser combinators of scala.
package miniparser
import scala.util.parsing.combinator.RegexParsers
object Main {
def main(args: Array[String]): Unit = {
val expr = """
println("result: "+(3+(if ({
println("cond");
@kmizu
kmizu / MiniParser.scala
Created November 13, 2011 11:30 — forked from kishida/MiniParser.scala
Mini parser with parser combinators of scala.
package miniparser
import scala.util.parsing.combinator.RegexParsers
import scala.collection.mutable.Map
object Main {
def main(args: Array[String]): Unit = {
val expr = """
val aa = 23;
@kmizu
kmizu / Example.mini
Created November 14, 2011 16:22 — forked from kishida/MiniParser.scala
Toy language with parser combinators of scala, which is derived from Kishida-san's code. Original language has dynamic scope. But It has static scope and so-called lexical closure.
val factorial = (n) => {
if(n < 2) 1 else (n * factorial(n - 1));
};
println("factorial(3) = " + factorial(3));
def mkcounter(n) = () => {
n = n + 1;
n
};
val counter = mkcounter(6);
@kmizu
kmizu / Eith.scala
Created December 14, 2011 13:20 — forked from makotan/gist:1476310
Either[L,Either[L,R]]のように多段になる場合にRだけを取得する (改変版)
def eith[R](arg: Either[Throwable, R] ) : R = {
/* Right(o:Either[Throwable, R]) パターンは
* erasureのせいで警告が出る点に注意 */
arg match {
case Left(e) => throw e
case Right(o:Either[Throwable, R]) => eith(o)
case Right(o:R) => o
}
}
println(eith(Right(1)))
@kmizu
kmizu / gist:1876796
Created February 21, 2012 14:32 — forked from gakuzzzz/gist:1865400
Scala環境構築

Scala 開発環境構築手順

前提条件

  • JDKがinstall済みであること
  • java コマンドに環境変数Pathが通っていること
@kmizu
kmizu / gist:1876800
Last active December 22, 2019 00:05 — forked from gakuzzzz/gist:1865400
Scala環境構築

Scala 開発環境構築手順

前提条件

  • JDKがinstall済みであること
  • java コマンドに環境変数Pathが通っていること
@kmizu
kmizu / hexToStr.scala
Created April 14, 2012 07:54 — forked from rirakkumya/hexToStr.scala
16進文字列をAscii文字列に変換 (再帰を使わないバージョン)
def hexToStr(s:String):String = {
s.grouped(2).map{xx => Integer.parseInt(xx, 16).toChar}.mkString("")
}
val target = 'a' to 'z' mkString
val hexTarget = target map {"%02x" format _.toInt} mkString
assert(target == hexToStr(hexTarget))
@kmizu
kmizu / README.md
Created September 8, 2012 02:55 — forked from xuwei-k/README.md
Scala language page pdf all download script

Scala公式ページの論文一覧のページのhtmlをパースして、自動でpdfのファイルっぽいものを全部ダウンロードするだけのものです