2010-01-01から1年間の記事一覧
Ocaml の時は自作したけど、Scala と Haskell は結構簡単にできる。 ↓Scala scala> List(Some(4), Some(2), None, Some(9), None, Some(0)) flatMap (x => x) res0: List[Int] = List(4, 2, 9, 0) ↓Haskell > [Just 4, Just 2, Nothing, Just 9, Nothing, Ju…
TDD Boot Camp 名古屋 に参加してきました! 初日 (7/10) 朝 id:youku_s に朝起こしてもらうなど。 豊橋組5人で金山へ。 電車の中で id:youku_s と C++ で TDD の練習 (FizzBuzz) など。C++ 楽しい。 午前 ますは、id:bleis-tift の挨拶。 それから、id:t-wa…
久々に (?) Scala で遊んでみる。 再帰さん scala> def z[A,B](f: (A=>B) => (A=>B)): A=>B = (x:A) => f(z(f))(x) z: [A,B](((A) => B) => (A) => B)(A) => B scala> z { (f:Int=>Int) => (n:Int) => if (n < 2) n else n * f(n - 1) } (10) res2: Int = 36…
もう7月なんですねぇ・・・ 24歳になりました! 祝ってやる! 俺おめ!
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 …
6/19 に、第8回名古屋Scala勉強会に参加してきました。 今回は18章と、こんなの書きました紹介。 19章は次回に。 18章 ステートフルオブジェクト 副作用があるメソッドの設計 副作用がある場合はUnitを返すようにするのがいい感じ コマンド・クエリ分離則 プ…
6/12に、わんくま名古屋勉強会 #13 VS2010CLTに参加してきました。 メインは VS2010 で、新機能の話とか。 Ultimate 高けぇ・・・ 今後下位エディションにも入るかもということで期待。 周りでは、bleis が飛び入りで LT したり、 a-hisame と bleis が TDD …
あれ?もう6月か・・・ 5月・・・なんてなかった。
4/25に、Proof Cafe (栄)に参加してきました。 Coq 初体験。 最初は、id:yoshihiro503 さんから資料に沿って Coq の解説が。 Vernacular が分かれば Coq が分かる? Coq のファイルの拡張子は .v Checkで 型を調べる。 ガリナ(Gallina):ラムダ式 nat : 型を…
4/24に、第22回 名古屋アジャイル勉強会に参加してきました。 今回は、「テスト駆動開発体験ワークショップ」。 ワークショップ 自分は環境持ってなかったけど、C#がやってみたかったのでC#組に参加。 id:bleis-tift と、biacさんと。環境は bleis の VS 200…
4/16に、第6回名古屋Scala勉強会に参加してきました。 15章の途中までしか見直せてなかったけど、何とかなった。 てか、15章の後半はサンプルで、特に突っこみもなかった。 13章 パッケージとインポート インポートするときにメンバーの名前を変えたり、隠し…
4/14に、名古屋アジャイル勉強会 分科会「『アジャイルな見積りと計画づくり』読書会」 第1回に参加してきました。 1章 計画の目的 アジャイル ドキュメント・計画いらない? ↑必要。計画はコミットメントではない。ドキュメントは必要に応じて作成。 アジャ…
. こわい。 > ((.) . (.)) succ (+) 1 2 4 > ((.) . (.)) length (++) "hoge" "piyo" 8 > ((.) (.)) (+) 1 succ 2 4
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…
3/26に、第21回 名古屋アジャイル勉強会に参加してきました。 テーマは、「マインドマップで高める要約力」。 要約するとき大事なこと 「誰に」伝えるのか 自分、友人、知人、初対面の人、etc. 「何を」最も伝えたいのか 「誰に」伝えたいかによって大きく違…
3/20に、東海アンカンファレンスに参加してきました。 自分は発表するつもりはなかったけど、後ろにいたid:bleis-tiftに押され発表することに。 適当にノートPCの環境晒し(+自分晒し)で、すごくgdgdですた。 懇親会 一次 隣にいた id:youandi さんに仕事の話…
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 北陸 に参加してきました! 初日 〜開始 5時半に実家を出て名古屋へ。 名古屋で id:bleis-tift と合流してと小松まで。 新幹線の英語アナウンスはレイハさんらしい。 小松からは wtnabe さんの車で現地へ。 雪が残ってたりして驚くなど。 t-wa…
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 -…
フィボナッチと階乗やってみる。 > 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>…
なんか作るのにすごい時間かかった・・・ リストを述語で分割 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 …
Real World Haskell―実戦で学ぶ関数型言語プログラミング が研究室に入ったので、本格的に Haskell やってみようかと。 とりあえず、3章まで読んだ。 目指せリア充! (注:「Real World Haskell充」の略) 小ネタ: 3項演算子 > let (+++) a b c = a + b + c …
無名関数が再帰できるとか。 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 参加してきました。 昼休みにあった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.マ…
初書きこ。