Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

@xuwei-k
xuwei-k / Scala-2-12
Last active October 5, 2023 05:29
scala xml pattern match
Welcome to Scala 2.12.18 (OpenJDK 64-Bit Server VM, Java 11.0.20).
Type in expressions for evaluation. Or try :help.
scala> val <a>{ b }</a> = <a></a>
scala.MatchError: <a></a> (of class scala.xml.Elem)
... 55 elided
scala> val <a>{ _ }</a> = <a>c</a>
scala> val <a>{ _* }</a> = <a>c</a>
@xuwei-k
xuwei-k / Bench.scala
Last active September 29, 2023 06:56
package p1
import org.openjdk.jmh.annotations.Benchmark
object Bench {
val values: List[Either[Int, Int]] = (1 to 100_000).map{
case n if n % 2 == 0 =>
Right(n)
case n =>
Left(n)
@xuwei-k
xuwei-k / 11
Last active September 22, 2023 07:48
public java.lang.String x(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=2, args_size=2
0: aload_1
1: invokedynamic #27, 0 // InvokeDynamic #0:makeConcatWithConstants:(Ljava/lang/String;)Ljava/lang/String;
6: areturn
letter = "A" … "Z" | "a" … "z"
capitalLetter = "A" … "Z"
decimalDigit = "0" … "9"
octalDigit = "0" … "7"
hexDigit = "0" … "9" | "A" … "F" | "a" … "f"
ident = letter { letter | unicodeDigit | "_" }
fullIdent = ident {"." ident}
messageName = ident
enumName = ident
@xuwei-k
xuwei-k / FunctorPolyFunction.scala
Created July 29, 2023 01:39
impl Functor use PolyFunction
package example
trait Functor[F[_]] {
def map[A, B](fa: F[A])(f: A => B): F[B]
}
object Functor {
def fromPolyFunction[F[_]](x: [A, B] => (fa: F[A]) => (f: A => B) => F[B]): Functor[F] =
new Functor[F] {
def map[A, B](fa: F[A])(f: A => B): F[B] = x(fa)(f)
scalaVersion := "3.3.0"
libraryDependencies += "org.openjdk.jol" % "jol-core" % "0.17"
package eval
import scala.reflect.runtime.currentMirror
import scala.tools.reflect.ToolBox
import java.io.File
object Eval {
def apply[A](string: String): A = {
val toolbox = currentMirror.mkToolBox()
@xuwei-k
xuwei-k / Higher-Rank-Polymorphism-in-Scala.md
Created August 9, 2012 02:09
Higher-Rank Polymorphism in Scala

原文: http://apocalisp.wordpress.com/2010/07/02/higher-rank-polymorphism-in-scala/ 訳者は英語得意ではなく、訳が怪しいところがあるとおもうので、間違いやつっこみがあれば、ここのコメント欄に記入なりなんなり指摘お待ちしてます。

Scalaでの高ランクポリモーフィズム (Higher-Rank Polymorphism in Scala)

Tim Carstens のポスト Haskell features he’d like to see in other languages をよんで、そのなかの一つにrank-2 typesというものがありました。 Tim は、これ(rank-2 type)を使ったキラーアプリケーションとして、型システムを利用して、リソースへのアクセスの安全性を確保するといいます。

package a {
object X
package b {
object Y
}
}
package b {
object Z
# checkoutその他は省略
- run: sbt compileなどの他のタスク色々 writeExternalDependencies
- name: upload dependencies.txt
if: github.event_name == 'push'
run: |
# いい感じにuploadとdownloadできれば、
# github actionsのartifactでもなんでも良い。
# 最近某所ではS3の方が便利というか楽なので、それ使ったりもしているので、その場合の例
aws s3 cp target/dependencies.txt s3://適当なURI/${{github.ref_name}}/dependencies.txt
- id: get_previous_dependencies