誕生日

もう7月なんですねぇ・・・ 24歳になりました! 祝ってやる! 俺おめ!

liftとか

liftで遊んでみる。 > :t map map :: (a -> b) -> [a] -> [b] > :t fmap fmap :: (Functor f) => (a -> b) -> f a -> f b > :t liftM liftM :: (Monad m) => (a1 -> r) -> m a1 -> m r > :t liftM2 liftM2 :: (Monad m) => (a1 -> a2 -> r) -> m a1 -> m a2 …

第8回名古屋Scala

6/19 に、第8回名古屋Scala勉強会に参加してきました。 今回は18章と、こんなの書きました紹介。 19章は次回に。 18章 ステートフルオブジェクト 副作用があるメソッドの設計 副作用がある場合はUnitを返すようにするのがいい感じ コマンド・クエリ分離則 プ…

わんくま名古屋勉強会#13 VS2010CLT

6/12に、わんくま名古屋勉強会 #13 VS2010CLTに参加してきました。 メインは VS2010 で、新機能の話とか。 Ultimate 高けぇ・・・ 今後下位エディションにも入るかもということで期待。 周りでは、bleis が飛び入りで LT したり、 a-hisame と bleis が TDD …

6月

あれ?もう6月か・・・ 5月・・・なんてなかった。

Proof Cafe

4/25に、Proof Cafe (栄)に参加してきました。 Coq 初体験。 最初は、id:yoshihiro503 さんから資料に沿って Coq の解説が。 Vernacular が分かれば Coq が分かる? Coq のファイルの拡張子は .v Checkで 型を調べる。 ガリナ(Gallina):ラムダ式 nat : 型を…

第22回名古屋アジャイル勉強会

4/24に、第22回 名古屋アジャイル勉強会に参加してきました。 今回は、「テスト駆動開発体験ワークショップ」。 ワークショップ 自分は環境持ってなかったけど、C#がやってみたかったのでC#組に参加。 id:bleis-tift と、biacさんと。環境は bleis の VS 200…

第6回名古屋Scala

4/16に、第6回名古屋Scala勉強会に参加してきました。 15章の途中までしか見直せてなかったけど、何とかなった。 てか、15章の後半はサンプルで、特に突っこみもなかった。 13章 パッケージとインポート インポートするときにメンバーの名前を変えたり、隠し…

アジャイルな見積りと計画づくり 読書会 第1回

4/14に、名古屋アジャイル勉強会 分科会「『アジャイルな見積りと計画づくり』読書会」 第1回に参加してきました。 1章 計画の目的 アジャイル ドキュメント・計画いらない? ↑必要。計画はコミットメントではない。ドキュメントは必要に応じて作成。 アジャ…

関数合成・・・

. こわい。 > ((.) . (.)) succ (+) 1 2 4 > ((.) . (.)) length (++) "hoge" "piyo" 8 > ((.) (.)) (+) 1 succ 2 4

do みたいな for

Scala の for を Haskell の do みたいに使ってみる。 Haskell f :: Maybe Int -> Maybe Int -> Maybe Int f am bm = do a <- am b <- bm let c = a + b return (2 * c) > f (Just 3) (Just 1) Just 8 > f Nothing Nothing Nothing > f (Just 3) Nothing Not…

第21回名古屋アジャイル勉強会

3/26に、第21回 名古屋アジャイル勉強会に参加してきました。 テーマは、「マインドマップで高める要約力」。 要約するとき大事なこと 「誰に」伝えるのか 自分、友人、知人、初対面の人、etc. 「何を」最も伝えたいのか 「誰に」伝えたいかによって大きく違…

東海アンカンファレンス

3/20に、東海アンカンファレンスに参加してきました。 自分は発表するつもりはなかったけど、後ろにいたid:bleis-tiftに押され発表することに。 適当にノートPCの環境晒し(+自分晒し)で、すごくgdgdですた。 懇親会 一次 隣にいた id:youandi さんに仕事の話…

第5回名古屋Scala

3/19に、第5回名古屋Scala勉強会に参加してきました。 今回は継承とかトレイトとか。 ScalaのforはOption型でも使えて、Haskellのdoみたいに使えるなーとかいう話題があった。 scala> val x = Some(3) x: Some[Int] = Some(3) scala> for (i <- x) yield (i …

TDD Boot Camp 北陸

TDD Boot Camp 北陸 に参加してきました! 初日 〜開始 5時半に実家を出て名古屋へ。 名古屋で id:bleis-tift と合流してと小松まで。 新幹線の英語アナウンスはレイハさんらしい。 小松からは wtnabe さんの車で現地へ。 雪が残ってたりして驚くなど。 t-wa…

foldを使ってfoldを作る

foldr/foldl を使って、foldl/foldrを作ってみる。 myFoldL :: (a -> b -> a) -> a -> [b] -> a myFoldL f y xs = foldr (\x g a -> g $ f a x) id xs y myFoldR :: (a -> b -> b) -> b -> [a] -> b myFoldR f y xs = foldl (\g x a -> g $ f x a) id xs y -…

Yコンビネータ

フィボナッチと階乗やってみる。 > let y f = f $ y f > :i y y :: (b -> b) -> b -- Defined at <interactive>:1:4 > y (\f n -> if n < 2 then n else f (n-1) + f (n-2)) 7 13 > y (\f n -> if n < 2 then n else f (n-1) + f (n-2)) 100 Interrupted. ← (´・ω・`)ショホ</interactive>…

RWH 4章練習問題1

なんか作るのにすごい時間かかった・・・ リストを述語で分割 splitWith :: (a -> Bool) -> [a] -> [[a]] splitWith f [] = [] splitWith f xs = case span f xs of (a,b) -> a : (splitWith f $ snd $ span (not . f) b) > splitWith (/= 'a') "igaiahaidih…

リストとか

Scalaでやってたやつとか。 平方数 > take 10 $ zipWith (*) [1..] [1..] [1,4,9,16,25,36,49,64,81,100] > take 10 $ map (\x -> x * x) [1..] [1,4,9,16,25,36,49,64,81,100] 総和と総積 > foldl (+) 0 [1..10] 55 > foldl (*) 1 [1..10] 3628800 > foldl1…

中置関数

map とかって、中置で使うとOO系言語と逆になるんだよなぁ・・ > :info map map :: (a -> b) -> [a] -> [b] -- Defined in GHC.Base > (\x -> x + 1) `map` [1..10] [2,3,4,5,6,7,8,9,10,11] > succ `map` [1..10] [2,3,4,5,6,7,8,9,10,11] > let myMap a b …

Haskellやる!

Real World Haskell―実戦で学ぶ関数型言語プログラミング が研究室に入ったので、本格的に Haskell やってみようかと。 とりあえず、3章まで読んだ。 目指せリア充! (注:「Real World Haskell充」の略) 小ネタ: 3項演算子 > let (+++) a b c = a + b + c …

Y(Z)コンビネータ

無名関数が再帰できるとか。 scala> def Y[A,B](f:(A=>B)=>(A=>B))(x:A):B = f(Y(f))(x) Y: [A,B](((A) => B) => (A) => B)(A)B scala> Y((f:Int=>Int) => (n:Int) => n match { | case m if m < 2 => m | case _ => f(n-1) + f(n-2) | })(7) res1: Int = 13…

わんくま名古屋勉強会#11

わんくま名古屋勉強会 #11 参加してきました。 昼休みにあったTDD道場について話題になってる様子。 TDD道場の自分なりの補足 - Logic Dice FizzBuzz with TDD - Logic Dice TestCase 属性などによるテストコードのリファクタリング - 予定は未定Blog版 自分…

関数、掛け算

scala> 1 to 8 map(1+) foreach print 23456789 scala> println("hoge" * 4) hogehogehogehoge こんなこと出来たんだ。

中括弧

if の条件の部分は小括弧を中括弧に出来ないっぽい。 while も出来ないっぽい。 for とかは出来るのに。 逆に match は中括弧じゃないと駄目みたい。 scala> { for { i <- 1 to 3 } yield (i) } foreach print 123 scala> def inc(a: Int) = a + 1 inc: (a: …

本届いた

さっき届いた本達。 数学の本2冊 集合論―独立性証明への案内作者: ケネスキューネン,Kenneth Kunen,藤田博司出版社/メーカー: 日本評論社発売日: 2008/01メディア: 単行本購入: 1人 クリック: 30回この商品を含むブログ (11件) を見る 圏論の基礎作者: S.マ…

あけました

初書きこ。

G500設定など

PC

買ってあったLogicoolのG500を使おうとして、設定でちょっとつまずいたのでメモ。 キーストロークの割り当てで、なぜかCtrlがちゃんと当たってくれなかった。 調べてみると、CtrlとCapslockを入れ替えているのがまずいっぽい。キーストロークに割り当てられ…

ファイル1

カレントディレクトリ内のbatファイルの行数を数えてみる。 scala> import java.io._ import java.io._ scala> import scala.io._ import scala.io._ scala> new File(".") getCanonicalPath res0: java.lang.String = C:\Users\rf\Documents\scala\bin scal…

関数合成

やってみる。 scala> val f1 = (a:Int) => a + 1 f1: (Int) => Int = <function> scala> val f2 = (a:Int) => a * 2 f2: (Int) => Int = <function> scala> val fs = List(f1, f2, f1, f1, f2) fs: List[(Int) => Int] = List(<function>, <function>, <function>, <function>, <function>) scala> (Function chain fs)(3) res31:…</function></function></function></function></function></function></function>