Haskell で九九の掛け算表を作ってみた。九九の表を計算するプログラムと表示部を分離してモジュール化できるようにした。
九九の表の計算部分はもちろんのことだが、表示部も部品を関数として設計していくと自然にモジュール化されたプログラムが出来上がっていく。また、部品のテストが関数の場合全体のプログラムとは独立してできる。個々の部品をテストしながら全体を組み上げていくプラモデル感覚のプログラミングが面白い。 関数型言語でプログラムを作るときは、全てを関数で作るつもりでプログラムしたほうが良いようだ。 掛け算九九表示プログラム: main = do putStr $ format $ kuku [2..9] kuku xs = [map (*x) xs | x <- xs] format xs = formatD $ map (formatC . formatB) xs formatA x = reverse $ take 3 $ reverse (" " ++ show x) formatB xs = map formatA xs formatC xs = unwords xs ++ "\n" formatD xs = foldl (++) [] xs 実行例: Main> formatA 1 " 1" Main> formatB [1,2] [" 1"," 2"] Main> (formatC . formatB) [1,2] " 1 2\n" Main> main 4 6 8 10 12 14 16 18 6 9 12 15 18 21 24 27 8 12 16 20 24 28 32 36 10 15 20 25 30 35 40 45 12 18 24 30 36 42 48 54 14 21 28 35 42 49 56 63 16 24 32 40 48 56 64 72 18 27 36 45 54 63 72 81 Main> putStr $ format $ kuku [2..5] 4 6 8 10 6 9 12 15 8 12 16 20 10 15 20 25
by tnomura9
| 2009-09-05 12:50
| Haskell
|
Comments(0)
|
カテゴリ
新型コロナウイルス 主インデックス Haskell 記事リスト 圏論記事リスト 考えるということのリスト 考えるということ ラッセルのパラドックス Haskell Prelude Ocaml ボーカロイド 圏論 jQuery デモ HTML Python ツールボックス XAMPP Ruby ubuntu WordPress 脳の話 話のネタ リンク 幸福論 キリスト教 心の話 メモ 電子カルテ Dojo JavaScript C# NetWalker ed と sed HTML Raspberry Pi C 言語 命題論理 以前の記事
最新のトラックバック
最新のコメント
ファン
記事ランキング
ブログジャンル
画像一覧
|
ファン申請 |
||