Playframework フォームバリデーションと表示整形、ユニットテストについて

バリデーションの定義 Formオブジェクト生成の定義に記述する。 Form{ mapping( "password" -> nonEmptyText.verifying(passwordCheckConstraint), "mail" -> email, "tel" -> nonEmptyText(maxLength = 13, minLength = 10).verifying(error="不正な番号で…

Scala PlayframeworkのController、Actionとは?

PlayframeworkのControllerのメソッド、Action{}とはなんぞや?の整理。 def index() = Action{ implicit request => Ok("Hello World") } 自分なりの解釈なので、間違ってたらごめんなさい。 Actionの定義 Action.scalaのActionBuildertraitのapplyメソッド…

Scala traitの無名クラスmixin

絶対忘れるので書いておく。 traitのメソッドのみ使いたい場合、無名クラスにtrait mixinすれば簡単に利用できる。 このように対象のtraitがあった場合、 trait Job { def p(str:String) = {println(str); str} } ダメなケース。 new Job() traitそのものは…

Haskell AtCoder 自分用コピペ保管場所

すぐコピペして使う用の自分用メモ AtCoder用の標準入力の受け取り -- 整数の入力 a <- readLn --文字列の入力 w <- words <$> getLine [w1, w2] <- words <$> getLine -- スペース区切り整数の入力 n <- map read . words <$> getLine :: IO [Int] [n,m,x] …

Haskell accumulatorがリストとなるfold関数の学習

employment.en-japan.com このページの下のコード部分がすぐに把握できなかったんだけど、整理するとなるほどな。と納得できた。 > foldl plusEach [0] [[1, 11], [1, 11], [3]] [5,15,15,25] 整理 plusEachの定義はページとは違うけど要約するとこんな感じ…

Haskell モナドについての学習

モナド モナドはバインド (>>=)関数をサポートするアプリカティブファンクターの一種。 (>>=)関数の定義。 (>>=) :: (Monad m) => m a -> (a -> m b) -> m b Monadという文脈に包んだ値を、値を取る関数に対して渡す。と読める。 適用例。 ghci> Just 3 >>= …

Haskell モノイドの学習

newtype newtypeはある型を値コンストラクタで包んで新しい型を作成する。 newtypeはdataキーワードの作用ととてもよく似ているが、 1つの値コンストラクタに1つのフィールドのみ定義できる dataより高速に作用する。らしい。 ghci> newtype CharList = Char…