前提としているElmのバージョンは0.18.0
。
- 実行環境
- リテラル
- 関数
- 型
- 構文
- モジュール
import javax.servlet._ | |
import skinny.micro._ | |
class Bootstrap extends LifeCycle { | |
override def init(ctx: ServletContext) { | |
example.App.mount(ctx) | |
} | |
} |
レンズは余状態余モナドの余代数だった | |
=================================== | |
余余余〜!別名`関数的参照`とも呼ばれる[レンズ](https://hackage.haskell.org/package/lens)はJavaのGetter, Setterと同等と[言われる](https://twitter.com/plt_borat/status/228009057670291456)関数型プログラミングのデザインパターンの一つです。 | |
レンズは余状態余モナドの余代数だと[聞いて](https://twitter.com/hiratara/status/317602743219003392)そうなのかーと思ってたのですが、ふと自分で実装してみたくなったので **余状態余モナドの余代数** として実装してみることにしました。 | |
ちなみにこの文章は`literate Haskell`という形式で書かれているのでダウンロードしてghciでロードすればすぐにでも自分で試すことができます。 | |
まず最初におまじない | |
> {-# LANGUAGE RankNTypes #-} |
import scalaz._ | |
import Free.FreeC | |
class DDD[Entity, ID] { | |
// repositoryへの操作を代数的データ型で定義し、それをFreeとCoyonedaの力によりモナドにして使う | |
sealed abstract class RepositoryDSL[A] | |
// 見つからないかもしれないので結果はOption型 | |
final case class ResolveBy(id: ID) extends RepositoryDSL[Option[Entity]] |
public static Observable<List<String>> paginatedThings(final Observable<Void> onNextObservable) { | |
return Observable.create(new Observable.OnSubscribe<List<String>>() { | |
@Override | |
public void call(final Subscriber<? super List<String>> subscriber) { | |
onNextObservable.subscribe(new Observer<Void>() { | |
int latestPage = -1; | |
@Override | |
public void onCompleted() { | |
subscriber.onCompleted(); |
-server | |
-Xms2g | |
-Xmx2g | |
-Xss16m | |
-XX:+UseConcMarkSweepGC | |
-XX:+CMSParallelRemarkEnabled | |
-XX:ConcGCThreads=4 | |
-XX:ReservedCodeCacheSize=128m | |
-XX:+AlwaysPreTouch | |
-XX:+TieredCompilation |
# -*- encoding:utf-8 -*- | |
# | |
# CentOSをセキュアにセットアップするFabricスクリプト | |
# | |
# 前提条件 : Fabricインストール済/SSHの公開鍵作成済 | |
# 実行方法 : fab deploy | |
# 検証環境 : CentOS6.6 (さくらのVPS 標準OSインストール) | |
##################################################################### | |
from fabric.api import env, run, sudo, put |