プログラミング勉強日記

勉強したことを書きます。Haskellとか。

HaskellでBitTorrentクライアントを作りたい

blog.chaps.ioHaskellで何か作りたい。でも何か作れるほどHaskellわからない。 と思ってたらBitTorrentクライアントのチュートリアルっぽいものを見つけたので、せっかくだし作ってみようという話です。以前の記事で作っていたBencodeのパース部分をとりあえ…

Attoparsecのメモ

blog.chaps.io上のサイトを見ながら、Bencodeのパースをするコードを書いていたら、そもそもParsecやAttoparsecというパースライブラリについて全然わからなかったので、メモがてら記録をしておきます。 ParsecよりもAttoparsecの方が早いと聞いたのと、上の…

ラムダ計算の練習

今日は型システム入門第5章のラムダ計算でのプログラミングを読んでいます。 その読書メモです。 ラムダ式の項の種類 x (変数) λx. t (ラムダ抽象) t t (関数適用) 変数のスコープ f = λx. x (λx. x)上記ラムダ式の赤文字のxと青文字のxは別物。 fにaを適用…

型無し算術式の実装

型システム入門の第4章 算術式の実装がOCamlで書かれていたので、勉強がてらHaskellで書いてみました。 import Data.Maybe (fromJust) data Term = T_TRUE | T_FALSE | T_ZERO | T_SUCC Term | T_PRED Term | T_ISZERO Term | T_IF Term Term Term deriving …

型システム入門を読む

久しぶりに書きます。estore.ohmsha.co.jp型システム入門という本を買ってしまったので、読んで勉強します。 私は型に対する理解が未だに曖昧なので、これを読んで少しでも理解を深められたらと思っています。3章の型無し算術式までは読んでみましたが、集合…

階乗でつまづくの巻

paiza.jp 先日からHaskellで挑戦してました。 一通りの問題を解いたのですが、彼女の水着を手に入れるための問題が全然通らなくて、あれれ?><状態です。 問題 「N!(Nの階乗)から、最下位桁から続く0を全て除いた値の下位9桁を出力せよ。」条件 1 最下位…

動的計画法の勉強

動的計画法がよく分からないので、お勉強しました。 Haskellで書いてます。この問題を解いてみました。 No.45 回転寿司 - yukicoderコードです。 main = do _ <- getLine sushi <- getLine let sushiList = map read (words sushi) :: [Int] let dpt = dp su…