Skip to content

Instantly share code, notes, and snippets.

View gakuzzzz's full-sized avatar

Manabu Nakamura gakuzzzz

View GitHub Profile
//funcLiteral ::= "{" [[ident {"," ident}] "=>"] lines "}"
def funcLiteral: Parser[AST] = "{"~>opt(repsep(ident, ",")<~"=>")~lines<~"}"^^{
case Some(param)~x => Func(param.map(_.name), x)
case _~x => x
}
@gakuzzzz
gakuzzzz / gist:1372563
Created November 17, 2011 07:04
無限Streamのgrouped
scala> val s: Stream[Int] = Stream.continually {1}
s: Stream[Int] = Stream(1, ?)
scala> val i = s.grouped(3)
i: Iterator[scala.collection.immutable.Stream[Int]] = non-empty iterator
scala> i take 5 foreach println
Stream(1, ?)
Stream(1, ?)
Stream(1, ?)
@gakuzzzz
gakuzzzz / 1_types.scala
Created December 12, 2011 02:22
型クラスを使わないMonadic
trait Functor[+A, M[A] <: Functor[A, M]] {
def map[B](f: A => B): M[B]
def fmap[B] = map[B] _
}
trait Pointed[M[_] <: Pointed[M]] {
def pure[A](a: A): M[A]
@gakuzzzz
gakuzzzz / PublicTimeLineViewer.java
Created February 17, 2012 17:58
fuyuhatutometa
package fuyuhatutometa;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.Socket;
@gakuzzzz
gakuzzzz / gist:1865400
Created February 19, 2012 19:44
Scala環境構築
@gakuzzzz
gakuzzzz / ExSeq.scala
Created February 27, 2012 14:05 — forked from giuniu/mapBetween.scala
mapBetween関数 trait版
trait ExSeq[+A] {
self: Seq[A] =>
def mapBetween[B](f:(A,A)=>B): Iterator[B] = {
sliding(2).map(s=>f(s(0),s(1)))
}
}
object ExSeq {
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLConnection;
public class PublicTimeLineViewer2 {
public static void main(String[] args) throws IOException {
@gakuzzzz
gakuzzzz / _1.java
Created April 12, 2012 07:26
sumtype on java way
public abstract class Base {
public static class A extends Base { ... }
public static class B extends Base { ... }
public static Base createA(...) { return new A(...); }
public static Base createB(...) { return new B(...); }
public static interface Visitor<T> {
T visit(A a);
T visit(B b);
@gakuzzzz
gakuzzzz / gist:2383028
Created April 14, 2012 09:08
計算中と計算終了を表すコンテナ
trait Container[+R, +C] {
def map[A](f: C => A): Container[R, A]
def flatMap[RR >: R, A](f: C => Container[RR, A]): Container[RR, A]
def get[RR >: R](implicit ev: C <%< RR): RR
}
case class Calculating[+R, +C](element: C) extends Container[R, C] {
@gakuzzzz
gakuzzzz / gist:2417464
Created April 19, 2012 00:04
Typesafe-stack2.0.1 play
[error] {file:/D:/home/nakamura/works/workspace/hogemage/}hogemage/compile:sources: java.lang.ExceptionInInitializerError
[error] application -
! Internal server error, for request [GET /] ->
play.api.UnexpectedException: Unexpected exception [ExceptionInInitializerError: null]
at sbt.PlayReloader$$anon$2$$anonfun$reload$3$$anonfun$2$$anonfun$apply$11.apply(PlayReloader.scala:228) ~[na:na]
at sbt.PlayReloader$$anon$2$$anonfun$reload$3$$anonfun$2$$anonfun$apply$11.apply(PlayReloader.scala:221) ~[na:na]
at scala.Option.map(Option.scala:133) ~[scala-library.jar:0.11.2]
at sbt.PlayReloader$$anon$2$$anonfun$reload$3$$anonfun$2.apply(PlayReloader.scala:221) ~[na:na]