Skip to content

Instantly share code, notes, and snippets.

View gakuzzzz's full-sized avatar

Manabu Nakamura gakuzzzz

View GitHub Profile
@gakuzzzz
gakuzzzz / gist:7766a6823cd2b101936d
Last active August 29, 2015 14:04
ApplicativeStype

ApplicativeBuilder

      (a |@| b |@| c |@| d apply f1) 
  |@| (e |@| f |@| g |@| h apply f2)
  apply f3

Haskell like Applicative Style

@gakuzzzz
gakuzzzz / gist:8d497609012863b3ea50
Last active January 12, 2021 12:50
Scalaz勉強会 主要な型クラスの紹介
@gakuzzzz
gakuzzzz / enum.scala
Last active April 26, 2023 12:26
Enum
trait EnumLike {
type Value
def value: Value
}
trait StringEnumLike extends EnumLike {
type Value = String
}
@gakuzzzz
gakuzzzz / console.scala
Created June 4, 2014 11:44
sbt publishSigined
[trace] Stack trace suppressed: run last root/*:publishSignedConfiguration for the full output.
[trace] Stack trace suppressed: run last sample/*:publishSignedConfiguration for the full output.
[error] (root/*:publishSignedConfiguration) Repository for publishing is not specified.
[error] (sample/*:publishSignedConfiguration) Repository for publishing is not specified.
[error] Total time: 13 s, completed 2014/06/04 20:34:58
> reload
@gakuzzzz
gakuzzzz / FizzBuzz.java
Created May 26, 2014 08:01
ついかっとなってやった。反省はしていない
import static java.util.stream.Collectors.toList;
import java.util.stream.IntStream;
public class FizzBuzz {
public String chooseWord(final int i) {
if (i % 15 == 0) return "FizzBuzz";
if (i % 3 == 0) return "Fizz";
if (i % 5 == 0) return "Buzz";
return String.valueOf(i);
@gakuzzzz
gakuzzzz / 1_.scala
Last active August 29, 2015 13:59
Is Stream#addString correct?
scala> Iterator.iterate(0)(_ + 1).take(10).addString(new StringBuilder, ",")
res7: StringBuilder = 0,1,2,3,4,5,6,7,8,9
scala> Stream.iterate(0)(_ + 1).take(10).addString(new StringBuilder, ",")
res8: StringBuilder = 0,?
scala> Iterator.iterate(0)(_ + 1).take(10).toString
res9: String = non-empty iterator
scala> Stream.iterate(0)(_ + 1).take(10).toString
@gakuzzzz
gakuzzzz / 1_.md
Last active June 30, 2016 21:58
Skinny Framework ハンズオン Q&A

Skinny Framework ハンズオンで出た質問と回答

IDE の Debugger どうやったら使えるの?

ハンズオン中はごめんなさいをするしかなかったのですが、 Skinny Framework 1.0.6 から使えるようになりました!

$ ./skinny debug [port]
@gakuzzzz
gakuzzzz / 1_.md
Last active March 7, 2025 06:35
Scala の省略ルール早覚え

Scala の省略ルール早覚え

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

メソッド定義

def concatAsString(a: Int, b: Int): String = {
  val a_ = a.toString();
  val b_ = b.toString();
@gakuzzzz
gakuzzzz / 1_.md
Last active June 19, 2023 12:53
trait と abstract class の使い分け

trait と abstract class の使い分け

  • 基本は迷ったら trait にしておけば良いと思います
    • trait は一つの class に複数 mixin できますが、class は一つしか継承できません
    • つまり、trait であれば mixin される class を気にしなくてよいですが、 abstract class にした場合は、extends される class が他に継承したい物が無いか気にする必要があります
  • trait はコンストラクタを持つ事ができませんが、abstract class はコンストラクタを持つ事ができます
    • 従って、型引数に制約をつけたい時や、共通のフィールドの初期化などがある場合は、abstract class にすると楽な場合があります。
  • 以下に具体例を示します。良くある Java の enum を Scala で定義する場合の例です。
@gakuzzzz
gakuzzzz / ParamType.scala
Created April 4, 2014 16:02
skinny #103
package skinny
import org.joda.time.{ DateTime => JDateTime, LocalDate => JLocalDate, LocalTime => JLocalTime, _ }
import skinny.util.DateTimeUtil
/**
* Strong parameter type definition.
*/
trait ParamType {