Skip to content

Instantly share code, notes, and snippets.

Yuichiroh

Block or report user

Report or block Yuichiroh

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
View gist:c0057381a596aa2f0256
~
% scala -Xprint:parser
Welcome to Scala version 2.11.4 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_25).
Type in expressions to have them evaluated.
Type :help for more information.
scala> [[syntax trees at end of parser]] // <init>
package <empty> {
class $repl_$init extends scala.AnyRef {
def <init>() = {
View gist:33e7444b390be6142ede90632f648708
implicit class ArgmaxColl[A, CC[X] <: Seq[X]](val coll: CC[A]) extends AnyVal {
def argmax(implicit o:Ordering[A]): Int = coll.indices.maxBy(coll)
}
val as = scala.util.Random.shuffle(1 to 10)
as.argmax
View gist:39f6fc6b7203e26adf7a
val plus012 = Array((_: Int) + 0,
(_: Int) + 1,
(_: Int) + 2)
/* plus012.apply(1) で (_: Int) + 1 を取り出して、2 を渡す */
plus012(1)(2) // 3
/* SeqがPartialFunction[Int, A]を継承しているので orElseを呼べる
* plus: PartialFunction[Int, (Int) => Int] */
val plus = plus012.orElse[Int, Int => Int] { case i => (_: Int) + i }
View gist:515c241100d1e68e2522
import java.io.PrintWriter
import scala.io.Source
import scala.util.continuations._
trait ContextType[B]
def contextType[B]: ContextType[B] = null
def using[A <: AutoCloseable, B: ContextType](resource: A)(op: A => B) = {
View gist:62589714b12315aaf1c1
val n = reset {
println("A")
val num = shift { (cont: Int => Int) =>
println("B")
cont(cont(1))
}
println("num", num)
num * 2
}
println("n", n)
View gist:457325e8901b866bebc0
import java.io.PrintWriter
import scala.io.Source
implicit class Using[T <: AutoCloseable](resource: T) {
def foreach[R](op: T => R): R = {
try op(resource)
catch { case e: Exception => throw e }
finally resource.close()
}
View gist:e7e28489b389a6db73d8
object OverloadSample {
implicit class B2I(f: Boolean => Int)
implicit class I2I(f: Int => Int)
def foo(func: B2I): Unit = {
println("test")
}
View gist:da30eb34fe32abb06e38
scala> object Label extends Enumeration{
| val ga, o, ni, none = Value
| }
defined object Label
scala> Label.values
res0: Label.ValueSet = Label.ValueSet(ga, o, ni, none)
scala> Label.values.map(_.toString)
res1: scala.collection.immutable.SortedSet[String] = TreeSet(ga, ni, none, o)
View gist:c25698956cbe089fde1e
def foo(func: Boolean => Int) = ???
def foo(func: Int => Int) = ???
View gist:7066510012d8a359dabd
package yuima.funcpearls
import scala.annotation.tailrec
/** Scala implementation of "Solving the Snake Cube Puzzle in Haskel."
* http://web.cecs.pdx.edu/~mpj/snakecube/revised-SnakeCube.pdf
*
* Note: No implementation for a function "advance" in section 9.
*
* @author Yuichiroh Matsubayashi
You can’t perform that action at this time.