This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
scalaVersion := "3.3.0" | |
libraryDependencies += "org.openjdk.jol" % "jol-core" % "0.17" |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import play.api.BuiltInComponents | |
import play.api.Mode | |
import play.api.mvc._ | |
import play.api.routing._ | |
import play.api.routing.sird._ | |
import play.core.server.NettyServer | |
import play.core.server.ServerConfig | |
object Main { | |
// 1つのScalaファイルで済むので、 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package a { | |
object X | |
package b { | |
object Y | |
} | |
} | |
package b { | |
object Z |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# 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 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
commands += { | |
def getProjects(s: State): Seq[String] = { | |
val extracted = Project.extract(s) | |
val currentBuildUri = extracted.currentRef.build | |
val buildStructure = extracted.structure | |
val buildUnitsMap = buildStructure.units | |
val currentBuildUnit = buildUnitsMap(currentBuildUri) | |
val projectsMap = currentBuildUnit.defined | |
projectsMap.values.map(_.id).toVector | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
trait Functor[F[_]] | |
def map [A, B](fa: F[A])(f: A => B ): F[B] | |
trait Applicative[F[_]] | |
def ap [A, B](fa: F[A])(f: F[A => B]): F[B] | |
trait Monad[F[_]] | |
def bind [A, B](fa: F[A])(f: A => F[B]): F[B] | |
trait Contravariant[F[_]] |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.8.18" exclude ("com.typesafe.play", "twirl-api_2.12")) | |
resolvers += Resolver.sbtPluginRepo("releases") | |
import scala.sys.process.Process | |
Seq(Compile, Test).map { x => | |
(x / TaskKey[File]("dependencySvg")) := { | |
val output = target.value / s"dependencies-${x.name}.svg" | |
Process(Seq( |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
* class org.slf4j.event.EventRecodingLogger does not have a correspondent in current version | |
filter with: ProblemFilters.exclude[MissingClassProblem]("org.slf4j.event.EventRecodingLogger") | |
* abstract method getMarker()org.slf4j.Marker in interface org.slf4j.event.LoggingEvent does not have a correspondent in current version | |
filter with: ProblemFilters.exclude[DirectMissingMethodProblem]("org.slf4j.event.LoggingEvent.getMarker") | |
* abstract method getArguments()java.util.List in interface org.slf4j.event.LoggingEvent is present only in current version | |
filter with: ProblemFilters.exclude[ReversedMissingMethodProblem]("org.slf4j.event.LoggingEvent.getArguments") | |
* abstract method getMarkers()java.util.List in interface org.slf4j.event.LoggingEvent is present only in current version | |
filter with: ProblemFilters.exclude[ReversedMissingMethodProblem]("org.slf4j.event.LoggingEvent.getMarkers") | |
* abstract method getKeyValuePairs()java.util.List in interface org.slf4j.event.LoggingEvent is present only |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
$ scala --version | |
Scala code runner version 2.13.10 -- Copyright 2002-2022, LAMP/EPFL and Lightbend, Inc. | |
$ scala -Wperformance -Xprint:jvm -e "def foo: Int = { var a = 10; @annotation.tailrec def loop(): Int = if (a == 0) 3 else { a -= 1 ; loop() } ; loop() }" | |
/var/folders/nz/vb2z3s8j7719gg71zgz9gj_40000gn/T/scalacmd2181293633408592115.scala:1: warning: Modification of variable a within a closure causes it to be boxed. | |
def foo: Int = { var a = 10; @annotation.tailrec def loop(): Int = if (a == 0) 3 else { a -= 1 ; loop() } ; loop() } | |
^ | |
[[syntax trees at end of jvm]] // scalacmd2181293633408592115.scala | |
package <empty> { | |
object Main extends Object { | |
def main(args: Array[String]): Unit = { |