Skip to content

Instantly share code, notes, and snippets.

View j5ik2o's full-sized avatar

Junichi Kato j5ik2o

View GitHub Profile
@j5ik2o
j5ik2o / gist:948435
Created April 29, 2011 15:09
filterを命令型と関数型で比較
import collection.mutable.ListBuffer
// 命令型で書いた場合
val filtered = new ListBuffer[Int]
val numbers = List(1,2,3,4,5)
for(n <- numbers){
if (n % 2 == 0){
filtered += n
}
}
@j5ik2o
j5ik2o / gist:948467
Created April 29, 2011 15:30
findを命令型と関数型で比較
case class Car(name: String, color: String)
def find(name: String, cars: List[Car]): Option[Car] = {
for (car <- cars) {
if (car.name == name) {
return Some(car)
}
}
None
}
@j5ik2o
j5ik2o / fizzBuzz.md
Created April 29, 2011 15:49
FizzBuzzを命令型と関数型で比較

命令型で記述。

for (n <- 1 to 100) {
  if (n % 15 == 0) {
    println("FizzBuzz")
  } else if (n % 3 == 0) {
    println("Fizz")
  } else if (n % 5 == 0) {
    println("Buzz")
  } else {
@j5ik2o
j5ik2o / gist:950158
Created May 1, 2011 01:14
sbt-ideaの設定方法
// 1. $PROJECT_ROOT/project/build/MyProject.scalaを作る。IdeaProjectをミックスインする。
import sbt._
class MyProject(info: ProjectInfo) extends DefaultProject(info) with IdeaProject{
}
// 2. $PROJECT_ROOT/project/plugins/Plugins.scalaを以下のように作る。
import sbt._
@j5ik2o
j5ik2o / gist:950451
Created May 1, 2011 11:58
sbtのlog
pom.xmlの中身
<?xml version='1.0' encoding='UTF-8'?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<groupId>jp.tricreo.scala</groupId>
<artifactId>scala-ddd-base_2.8.1</artifactId>
<packaging>jar</packaging>
<version>0.0.1-SNAPSHOT</version>
...
@j5ik2o
j5ik2o / gist:950506
Created May 1, 2011 13:38
sbtでversionが-SNAPSHOTの場合にpublishToをsnapshotに切り替える方法
import sbt._
class MyProject(info: ProjectInfo) extends DefaultProject(info) {
override def managedStyle = ManagedStyle.Maven
// publishing
lazy val publishTo = if (version.toString.endsWith("-SNAPSHOT")){
println("Selected Snapshot")
Resolver.sftp("Tricreo Repo", "maven.tricreo.jp", "/var/www/maven.tricreo.jp/snapshot")
@j5ik2o
j5ik2o / gist:970362
Created May 13, 2011 11:11
JavaでRangeオブジェクト的ななにか
package util;
import java.io.Serializable;
import java.util.Iterator;
public class Range implements Iterable<Integer>, Serializable, Cloneable {
private static class RangeIterator implements Iterator<Integer> {
final int start;
@j5ik2o
j5ik2o / gist:1037873
Created June 21, 2011 13:44
列挙型っぽいもの
import collection.mutable.ListBuffer
/**列挙型定数を表すトレイト。
*
* @author j5ik2o
*/
trait EnumEntry extends Serializable with Ordered[EnumEntry] {
/**列挙定数の序数 (列挙宣言での位置)。 */
private[util] var ordinalNo: Int = _
@j5ik2o
j5ik2o / maven3.rb
Created June 26, 2011 12:49
HomebrewでMaven2とMaven3を共存させるためのFormula(Maven3)
require 'formula'
class Maven3 < Formula
url 'http://www.apache.org/dist/maven/binaries/apache-maven-3.0.3-bin.tar.gz'
homepage 'http://maven.apache.org/'
md5 '507828d328eb3735103c0492443ef0f0'
def install
# Remove windows files
rm_f Dir["bin/*.bat"]
@j5ik2o
j5ik2o / maven2.rb
Created June 26, 2011 12:49
HomebrewでMaven2とMaven3を共存させるためのFormula(Maven2)
require 'formula'
class Maven2 < Formula
url 'http://www.apache.org/dist/maven/binaries/apache-maven-2.2.1-bin.tar.gz'
homepage 'http://maven.apache.org/'
md5 '3f829ed854cbacdaca8f809e4954c916'
def install
rm_f Dir["bin/*.bat"]