2008-04-01から1ヶ月間の記事一覧

練習問題 10.3 fold コマンド

プログラミング in OCaml ~関数型プログラミングの基礎からGUI構築まで~のp.215より。 wc コマンドはなんか難しいのでこっちを先に。 UNIX の fold コマンドは,ファイル名の列を引数として,その内容を,長い行を複数の短い 行(デフォルトでは80文字)に分…

練習問題 10.1

プログラミング in OCaml ~関数型プログラミングの基礎からGUI構築まで~のp.215より。 UNIXの cat コマンドは,ファイル名の列を引数として,その内容を順次表示する(標準出力 に書き込む)ものです。これを OCaml で実装し,実行可能ファイルを作成しなさ…

Problem 31

今日は Problem 31。cf. Project Euler - Problem 31 cf. Life Goes On - 31問目id:rst76さんのをちょっと改良して1pのコインがない場合にも対応できるようにしてみた。問題の解答には必要ないんだけど。 module Main (main) where euler031 :: [Int] -> I…

Problem 14

今日は Problem 14。cf. Project Euler - Problem 14コラッツ問題の数列を求めるのは以前にやったのを流用。あとは力任せに… module Main (main) where collatz :: Int -> [Int] collatz 1 = 1 : [] collatz n | n `mod` 2 == 0 = n : collatz (n `div` 2) |…

Problem 8

今日は Problem 8。cf. Project Euler - Problem 8 module Main (main) where import Data.List import Data.Char euler008 :: [Char] -> Int euler008 n = maximum $ map euler008' $ nums n where nums = filter (\x -> length x > 4) . map (take 5) . ta…

Problem 13

今日は Problem 13 をやってみた。これは簡単。cf. Project Euler - Problem 13 nums :: [Integer] nums = [37107287533902102798797998220837590246510135740250, 46376937677490009712648124896970078050417018260538, 7432498619952474105947423330951305…