Skip to content

Instantly share code, notes, and snippets.

object Main extends App{
trait Creatable[T] {
def create(): T
}
class Cat(val name: String)
// 自作の型への適用
implicit object Cat extends Creatable[Cat] {
def create() = new Cat("taro")
object Main extends App{
implicit val createValueInt: Int = 3
implicit val createValueStrign: String = "po"
def createValue[T](implicit value: T) = value
val valueInt: Int = createValue
println(valueInt)
val valueString: String = createValue
(1 ..< 100).forEach {
switch ($0 % 3, $0 % 5) {
case (0, 0):
print("FizzBuzz")
case (0, _):
print("Fizz")
case (_, 0):
print("Buzz")
default:
print($0)
@Biacco42
Biacco42 / TypeClassPlayGround.scala
Created May 25, 2017 16:45
TypeClass PlayGround
package info.biacco42.test.typeclass
/**
* Created by sanok on 2017/05/25.
*/
trait Addable[T] {
val unit: T
def add(x: T, y: T): T
@Biacco42
Biacco42 / TypeClassTest.hs
Created May 25, 2017 16:50
Haskell Type Class Study
{-# LANGUAGE FlexibleInstances #-}
main = do
print $ mySum ([1, 2, 3] :: [Int])
print $ mySum (["hoge", "piyo", "huga"] :: [String])
class AddMonoid a where
unit :: a
add :: a -> a -> a
object FizzBuzz {
def main(args: Array[String]) {
val fizzbuzz = (1 to 100).map { i =>
(i % 3, i % 5) match {
case (0, 0) => "fizzbuzz"
case (0, _) => "fizz"
case (_, 0) => "buzz"
case _ => i.toString
}
}
[alias]
graph = log --graph --date-order -C -M --pretty=format:\"<%h> %ad [%an] %Cgreen%d%Creset %s\" --all --date=short
adda = add -A
addp = add -p
st = status
br = branch
co = checkout
cob = checkout -b
cm = commit -m
diffc = diff --cached
@Biacco42
Biacco42 / Fibonacci.scala
Last active October 11, 2017 11:41
Fibonacci
object Main extends App{
// 真面目に書いた正格評価の fib seq
fib(10).foreach { println }
def fib(n: Int): Seq[Int] = {
assert(n > 0)
def rec(n: Int, a: Int, b: Int, seq: Seq[Int]): Seq[Int] = (n <= 1) match {
case true => seq
case false => rec(n - 1, b, a + b, seq :+ b)
@Biacco42
Biacco42 / Poption.scala
Last active October 13, 2017 04:53
Scala for expression study
object Main extends App {
val poPoption = Poption("Po")
val popoPoption = Poption("PoPo")
val popopo = for {
po <- poPoption
popo <- popoPoption
} yield { po + popo }
println(popopo)
object Main extends App{
val forPo = new Forable("Po")
val po = for {
u <- forPo
} yield u
println(po)
// Kaboom! Cannot compile - lack of flatMap