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: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: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: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: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: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
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:e7e28489b389a6db73d8
object OverloadSample {
implicit class B2I(f: Boolean => Int)
implicit class I2I(f: Int => Int)
def foo(func: B2I): Unit = {
println("test")
}
View gist:e1119736ec541bf4785b
def withPrintWriter(file: String)(op: PrintWriter => Unit) {
val writer = new PrintWriter(file)
try op(writer)
finally writer.close
}
withPrintWriter("out.txt") { w =>
w.println("anything you want to write")
}
You can’t perform that action at this time.