Skip to content

Instantly share code, notes, and snippets.

@paf31
paf31 / memo.purs
Created December 16, 2014 01:47
Memoized functions in PureScript
module Main where
import Debug.Trace
import Data.Tuple
import Data.Either
import Data.Lazy
class Memo a where
memo :: forall r. (a -> r) -> a -> Lazy r
@paf31
paf31 / 24days.md
Last active August 8, 2023 05:53
24 Days of PureScript

This blog post series has moved here.

You might also be interested in the 2016 version.

@okumin
okumin / akka-persistence.md
Created September 28, 2014 08:55
akka-persistenceのプラグインをつくろう
[2014-09-06 08:09:28 JST] (INFO) start
[2014-09-06 08:09:39 JST] (INFO) irc|taisukeoe|hello
[2014-09-06 08:09:38 JST] (INFO) twitter|niw|Okay, my presentation is not ready (ouch!) yet heading to Shibuya soon. #ScalaMatsuri
[2014-09-06 08:09:38 JST] (INFO) twitter|makoto78sasaki|#ScalaMatsuri へ出発
[2014-09-06 08:09:39 JST] (INFO) twitter|s_kozake|さて、向かうで!
#ScalaMatsuri
[2014-09-06 08:09:41 JST] (INFO) twitter|cbirchall|寝坊!今日に限って目覚ましが鳴らないとは。今向かっています #ScalaMatsuri
[2014-09-06 09:09:41 JST] (INFO) twitter|sm0kym0nkey|到着 #ScalaMatsuri
[2014-09-06 09:09:41 JST] (INFO) twitter|jagd5168|なんとか目を覚まし 9:45 到着予定 #ScalaMatsuri
[2014-09-06 09:09:41 JST] (INFO) twitter|iyunoriue|#ScalaMatsuri 今日ボランティアやってますv(*・∀・*)ピース
@gakuzzzz
gakuzzzz / 1_Implicits.scala
Last active April 18, 2021 02:29
Play2 Controller Utilities
package controllers.util
import play.api.mvc.{Result, Controller}
import play.api.data.Form
import scala.util.Either.RightProjection
object Implicits {
implicit def formToEither[A](form: Form[A]): Either[Form[A], A] = form.fold(Left.apply, Right.apply)
@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 / gist:9737634
Last active August 29, 2015 13:57
Ninja Framework お悩み相談

Ninja Framework 困りごと

やりたい事

  1. Controller のメソッド引数に Optional<ID<User>> のような Generic な独自型を指定したい。
    • 独自型の変換時に Validation と連携したい。
  2. Java8 の javac option -parameters を使用して、 Controllerメソッドの引数名からRequest Parameter名やPathParameter名を解決したい。
    • こちらは Java8 専用機能になるし、また Ninja の思想から若干外れている気もするので Ninja 本体に手を入れるよりは plugin なりで提供できればよいと考えている。
@seratch
seratch / DB.java
Created March 21, 2014 01:48
Simple DB utility prototype on Java8
import java.util.function.Function;
import java.util.*;
public class DB {
static void println(String s) { System.out.println(s); }
// java.sql.Connection
static class Connection implements AutoCloseable {
@Override public void close() { println("closed"); }
}
@tanakh
tanakh / gist:8750952
Created February 1, 2014 11:20
なぜ我々はHaskellを使うのか

スタートアップ企業 Silk が、Haskellを採用した理由。

http://engineering.silk.co/post/31920990633/why-we-use-haskell

As a newly started company, we have a lot of technical decisions to make. One of the important ones is the choice of a programming language. Since we’re building a web application, this goes for both the client (i.e. the web browser) and the server.

新しく始めた会社として、我々はたくさんの技術的決定を行わなければなりません。中でも重要なのは、プログラミング言語の選択です。我々はウェブアプリケーションを作っていたので、この選択がクライアント(Webブラウザなど)とサーバの両方で必要になります。

On the client, there wasn’t much discussion. Javascript is the only viable choice, unless you want to use Flash or similar plugin-based models. But on the server, we had more freedom. Popular choices for web applications are dynamically typed languages like Ruby, Python and PHP, and statically typed languages like Java and C#.

libraryDependencies += "org.scalaz" %% "scalaz-core" % "7.1.3"