View mouse_point.lua
-- mouse highlighting | |
_c = require("hs.canvas") | |
function createCanvas(screen) | |
local cp = hs.mouse.getAbsolutePosition() | |
local f = screen:frame() | |
canvas = _c.new(f):show() | |
canvas[1] = { | |
action = "build", | |
type = "circle", |
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") | |
} |
NewerOlder