Skip to content

Instantly share code, notes, and snippets.

View gakuzzzz's full-sized avatar

Manabu Nakamura gakuzzzz

View GitHub Profile
@okapies
okapies / promises-are-functional.md
Last active August 14, 2023 11:44
翻訳: ”命令型のコールバック、関数型のプロミス: Node が逸した最大の機会” by James Coglan

命令型のコールバック、関数型のプロミス: Node が逸した最大の機会

Original: "Callbacks are imperative, promises are functional: Node's biggest missed opportunity" by James Coglan

Translated by Yuta Okamoto (@okapies)

Note

  • 訳者は JavaScript や Node.js に関する専門知識がほとんどありません。識者のツッコミをお待ちしております。「◯◯が分からない」等も歓迎です。
  • 元記事から構成を一部変更しています。また、関数型プログラミングに関する記述のうち、議論の骨子に絡まないものは省略しています。
@j5ik2o
j5ik2o / gist:5660744
Last active November 18, 2021 11:04
Scala 2.10 & SBT & JRebel & IntelliJ IDEAの環境構築方法

できること

  • JRebelを利用すると、アプリケーションの再起動なしで実行中のアプリケーションに加えた変更を即座に反映することができます(ホットリローディング)。まるでPHPのようにサクサク書けるッ!
  • Scala開発者にはライセンスが$0で提供されます。Javaで利用する場合は購入してね☆彡

前提

以下がインストールされているものとする。

import scalaz._, Scalaz._
object MaxValue extends App {
val a = Map(1 -> 10, 2 -> 5)
val b = Map(2 -> 10, 3 -> 7)
val c = a.mapValues(Tags.MaxVal) |+| b.mapValues(Tags.MaxVal)
(c: Map[Int, Int]) assert_=== Map(1 -> 10, 2 -> 10, 3 -> 7)
}
@kazu-yamamoto
kazu-yamamoto / gist:5873204
Created June 27, 2013 01:09
Free Operational example to be interpreted to IO and pure testing.
{-# LANGUAGE GADTs #-}
module Main where
import Control.Monad
import Control.Monad.Operational.Simple
import Prelude hiding (putChar, getChar)
import qualified System.IO as IO
import Test.QuickCheck
@halcat0x15a
halcat0x15a / pipe.md
Last active March 19, 2024 03:30
Pipe

Pipeモナドの紹介

Scalaの記事です。Haskellはあまり書けません。

Iterateeの複雑さから開放されたいのでPipe系ライブラリ使いましょうという記事です。

Iterateeとの比較や簡単な使い方についてつらつらと書いていきます。

Iterateeについて

@xuwei-k
xuwei-k / build.sbt
Last active June 24, 2021 01:09
show message when sbt build files changed
val buildFiles = SettingKey[Map[File, Seq[Byte]]]("build-files")
buildFiles := getBuildFiles((baseDirectory in ThisBuild).value)
def getBuildFiles(base: File) =
((base * "*.sbt") +++ ((base / "project") ** ("*.scala" | "*.sbt"))).get.map{
f => f -> collection.mutable.WrappedArray.make[Byte](Hash(f))
}.toMap
def changed(base: File, files: Map[File, Seq[Byte]]): Boolean =
@nakamura-to
nakamura-to / doma_immutable_entity.md
Last active December 22, 2015 11:19
Doma 1.34.0に入ったイミュータブルなエンティティのサポートについて
@runarorama
runarorama / gist:a8fab38e473fafa0921d
Last active April 13, 2021 22:28
Compositional application architecture with reasonably priced monads
sealed trait Interact[A]
case class Ask(prompt: String)
extends Interact[String]
case class Tell(msg: String)
extends Interact[Unit]
trait Monad[M[_]] {
def pure[A](a: A): M[A]
import httpz._, native._
object Main {
final case class Repo(owner: String, name: String)
val repositories = (
Repo("slick", "slick") ::
Repo("mauricio", "postgresql-async") ::
Repo("squeryl", "squeryl") ::
@asufana
asufana / Play1.xのJava8対応.markdown
Last active July 24, 2018 08:33
PlayFramework 1.2.x Java8対応

PlayFramework 1.2.x Java8対応

Java8対応の1.3がリリースされそうな様子がないため、1.2.xブランチにJava8対応コミットを適用して利用する。

PlayFramework1リポジトリをforkする

  • GitHubサイト上で PlayFramework1リポジトリ をforkする

  • タグ 1.2.5.4 をチェックアウトして新しいブランチ 1.2.5.4-java8 を生成する