Skip to content

Instantly share code, notes, and snippets.

View kmizu's full-sized avatar

Kota Mizushima kmizu

View GitHub Profile

構築する環境

  • Ubuntu 18.04 64bit
  • opam 2.0.0
  • ocaml 4.06.1 (最新は4.07だが、batteriesが未対応なので4.06で作る)
  • dune 1.2.1

準備

opam 2.0.0 のインストール

object Main extends App{
trait Creatable[T] {
def create(): T
}
class Cat(val name: String)
// 自作の型への適用
implicit object Cat extends Creatable[Cat] {
def create(): Cat = new Cat("taro")
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")
@kmizu
kmizu / readme.md
Created January 17, 2017 10:28 — forked from xuwei-k/readme.md
kotlinにおけるバイナリ互換とは
class A() {
init {
val s: String = getStr()
println("${s.length}") // java.lang.NullPointerException
}
fun getStr(): String {
return str
}
# coding: utf-8
def foo(array_or_hash)
if array_or_hash.responds_to?(:values)
# Hashっぽい
array_or_hash.values.join(", ")
else
# きっとArray
array_or_hash.join(", ")
end
@kmizu
kmizu / 1_.md
Created April 28, 2016 02:23 — forked from gakuzzzz/1_.md
Scala の省略ルール早覚え

Scala の省略ルール早覚え

このルールさえ押さえておけば、読んでいるコードが省略記法を使っていてもほぼ読めるようになります。

メソッド定義

def concatAsString(a: Int, b: Int): String = {
  val a_ = a.toString();
  val b_ = b.toString();

マージ済みのリモートブランチを全て削除

git branch -r --merged master | grep -v -e master -e develop | sed -e 's% *origin/%%' | xargs -I% git push --delete origin %
  1. remote の master に merge済み の branch をすべて表示して
  2. master と develop は消えてほしくないので除外して
  3. origin/ を削除して
  4. xargs (-I% % で ブランチ名を渡しつつ、全て削除する)
package com.example
case class Foo[M[_], A](step: M[Foo.Step[A, Foo[M, A]]])
object Foo {
class Step[A, S]
object Done {
def unapply[A, S](a: Step[A, S]): Boolean = true
}
}
package controllers
import play.api.mvc._
object Application extends Controller {
def upload = Action(parse.multipartFormData) {
request =>
if (request.body.files.isEmpty) BadRequest("Invalid file!")
else if (request.body.asFormUrlEncoded.isEmpty) BadRequest("Invalid data!")
else Ok("Everything is okay!")