すごいHaskellたのしく学ぼう!
ですが第11章難しい
なに言ってるんだかさっぱりわからん
嫌になってきた
コンピュータサイエンスの話題、Common Lisp、すこしHaskellにも触れます 求職中 スキルとしてはVisual StudioでC#が得意 Webアプリケーション、データベースの一般的な操作に精通しています 要件定義から設計、実装まで問題なくこなせます 一般的なプログラミング言語なら問題なく扱えます
2012年6月23日
2012年6月18日
Haskellでcode jamに挑戦
2012年の予選問題
Problem C. Recycled Numbers
出題範囲の数を全部列挙して、それぞれrecycled numberを作り出して出題範囲に収まっているかどうか調べてからrecycled numberだけを畳み込んで数える
Problem C. Recycled Numbers
出題範囲の数を全部列挙して、それぞれrecycled numberを作り出して出題範囲に収まっているかどうか調べてからrecycled numberだけを畳み込んで数える
import Data.List toInteger' s = read s :: Integer rotate lower upper n = let f1 n = n `div` 10 f2 n = (n `mod` 10) * 10 ^ (digitcount - 1) f3 n = f1 n + f2 n digitcount = length $ show n rec _ 0 r = length (filter (\x -> x >= lower && x <= upper) $ Data.List.nub r) - 1 rec n d r = rec (f3 n) (d - 1) ((f3 n) : r) in rec n (digitcount - 1) (n:[]) scan lower upper = (foldl' (\acc x -> acc + (rotate lower upper x)) 0 [lower..upper]) `div` 2 compute s = let f = map (toInteger') (words s) in scan (head f) (last f) main = do line <- getLine contents <- getContents putStrLn $ unlines $ map (\(i, line) -> "Case #" ++ show i ++ ": " ++ show (compute line)) $ zip [1..] $ lines contents
2012年6月5日
すごいHaskellたのしく学ぼう!読書感想
「すごいHaskellたのしく学ぼう!」を読みながらHaskell修行中
Haskellの楽しいところは非正格評価で必要になるまで評価されない点だと思う
整数配列が[1..]と書けるところが素晴らしい
あとは他の言語でもあるのだけどリスト内包表記だね
これがあると繰り返していちいちリスト作るのが面倒で仕方が無くなる
この本に載っている直角三角形を求める例も素晴らしい例だと思う
ワンライナーだけど全然読みづらくなくて逆に直感的で分かりやすい記述だと思う
Haskellは型推論がしっかりしてるから普通でいきなりジェネリックなところも素晴らしいですね
結局型宣言書くことになるのだけど実際のプログラム自体に余計な記述が入り込まないから簡潔になっていいですね
Common Lispは大好きでたいへん尊敬しているのですが動的型付はどうも性に合わないんですよね
静的型付のほうがしっくりくるので型推論は非常に嬉しいです
でもなんだかんだいっても結局Haskellの魅力は関数の構文の素晴らしさですね
パターンマッチ、ガード、where、let、caseとあって手続き型だと結局ifかswitch程度しかなくてなんとも貧弱なのですがHaskellはやっぱりこの辺りが洗練されているなと思います
次に続くのが超目玉のカリー化だったり部分適応だったりで
これらを駆使してmapやfoldを利用するために関数合成、$での関数適用でソースを読みやすくして
ポイントフリースタイルでさらに関数合成を洗練させられる
まあ当然ラムダも素晴らしいんですけどね
とりあえず5章まで読んだんですけどここまででもHaskellの素晴らしさ魅力はあふれんばかりだと思います
この本はモナドやIOがなかなか登場しないですね
まあなんにしても5章まででも十分すぎるほど読む価値あると思います
この本は関数型について学びたい人には向いてないかな
Haskellを使えるようになりたい人には向いていると思います
関数型についてだったらF#やOCamlの本の方がいいんじゃないかな
Haskellの楽しいところは非正格評価で必要になるまで評価されない点だと思う
整数配列が[1..]と書けるところが素晴らしい
あとは他の言語でもあるのだけどリスト内包表記だね
これがあると繰り返していちいちリスト作るのが面倒で仕方が無くなる
この本に載っている直角三角形を求める例も素晴らしい例だと思う
ワンライナーだけど全然読みづらくなくて逆に直感的で分かりやすい記述だと思う
Haskellは型推論がしっかりしてるから普通でいきなりジェネリックなところも素晴らしいですね
結局型宣言書くことになるのだけど実際のプログラム自体に余計な記述が入り込まないから簡潔になっていいですね
Common Lispは大好きでたいへん尊敬しているのですが動的型付はどうも性に合わないんですよね
静的型付のほうがしっくりくるので型推論は非常に嬉しいです
でもなんだかんだいっても結局Haskellの魅力は関数の構文の素晴らしさですね
パターンマッチ、ガード、where、let、caseとあって手続き型だと結局ifかswitch程度しかなくてなんとも貧弱なのですがHaskellはやっぱりこの辺りが洗練されているなと思います
次に続くのが超目玉のカリー化だったり部分適応だったりで
これらを駆使してmapやfoldを利用するために関数合成、$での関数適用でソースを読みやすくして
ポイントフリースタイルでさらに関数合成を洗練させられる
まあ当然ラムダも素晴らしいんですけどね
とりあえず5章まで読んだんですけどここまででもHaskellの素晴らしさ魅力はあふれんばかりだと思います
この本はモナドやIOがなかなか登場しないですね
まあなんにしても5章まででも十分すぎるほど読む価値あると思います
この本は関数型について学びたい人には向いてないかな
Haskellを使えるようになりたい人には向いていると思います
関数型についてだったらF#やOCamlの本の方がいいんじゃないかな
2012年6月2日
読書感想
「プログラミングClojure」を読んであらためてCommon Lispの素晴らしさがわかったような気がします
Clojureの本なんですけどこの本に書いてあることはCommon Lispで全てできる
Common Lispのパワーを改めて感じられました
やっぱりCommon Lispすげーや
Clojureって言っても、Common Lispのマクロ拡張セットじゃないかなと
LET OVER LAMBDA
この本は何回読んでも難しい
全然理解できない
意味わかんないと言うか頭がついていかない
実際コード入力してやってみても意味わかんないし
とにかく難しい
前回読んだときより多少理解できるようになってきてるのでまた一年後くらいに読むことになるのだけどその時はもう少しわかるようになっているかな
「すごいHaskellたのしく学ぼう!」
Haskellの本は4冊目くらいかな
一向にできるようにならないですね
関数のCase、ガード、whereが上手く使いこなせない気がします
このあたりは練習あるのみではないかなと
「ドメイン特化言語」
マーチン・ファウラー著の本が近所の普通の本屋で売ってたので思わず買ってしまった
なんでこんな本仕入れたのかまったく理解できないですね
今日買いました
Clojureの本なんですけどこの本に書いてあることはCommon Lispで全てできる
Common Lispのパワーを改めて感じられました
やっぱりCommon Lispすげーや
Clojureって言っても、Common Lispのマクロ拡張セットじゃないかなと
LET OVER LAMBDA
この本は何回読んでも難しい
全然理解できない
意味わかんないと言うか頭がついていかない
実際コード入力してやってみても意味わかんないし
とにかく難しい
前回読んだときより多少理解できるようになってきてるのでまた一年後くらいに読むことになるのだけどその時はもう少しわかるようになっているかな
「すごいHaskellたのしく学ぼう!」
Haskellの本は4冊目くらいかな
一向にできるようにならないですね
関数のCase、ガード、whereが上手く使いこなせない気がします
このあたりは練習あるのみではないかなと
「ドメイン特化言語」
マーチン・ファウラー著の本が近所の普通の本屋で売ってたので思わず買ってしまった
なんでこんな本仕入れたのかまったく理解できないですね
今日買いました
登録:
投稿 (Atom)