CSS Selector Generator | CSS のセレクタ一覧を一発で自動生成!

23

01月2008年

Haskellの練習再開

tanaka 18:00 PM

今日からは「ふつうのHaskellプログラミング」を読んで勉強していきます。

早速寄り道

Haskellに入る前に、謝辞で気になることがありました。人名がUNIX sort順で並んでいると書いてあったのです。

UNIX sort順とはなにか。思い当たるのがsortコマンドです。「man sort」してみると、ソート・マージ・比較するコマンドのようです。

そこで、列挙されている人名(一文字目だけ列挙すると、「s,結,三,山,山,寺,西,木,柳,鈴」です)を逆順にしてテキストファイルに保存して、sortコマンドで出力してみると、確かに、謝辞で列挙された順番に出力されました。

ここで思ったのが、日本語は音読みの順番でソートされるのではないか、ということです。感じを音読みに変換すると「けつ、さん、さん、さん、じ、せい、もく、りゅう、りん」というわけで、音読み順に並んでいますが、常にこのように並ぶかどうかは、すこしWeb検索しただけではわかりませんでした。

さて、本題に戻りましょう。

いきなりHaskellから話がずれてしまいました。

さて、本のp.4からp.16まではHaskell言語の特長や、インストールの話がありますが、Haskellのコードはでてきませんので、省略いたします。他の言語と異なる部分の解説があるので、重要ですけど。

Hello,World!

HaskellのHello, Worldは以下の通りです。(hello.hs)

なお、環境はDebianのテスト版(現在はlenny)で、「apt-get install ghc」でインストールしたツールでプログラムを実行しています

main = putStrLn "Hello, World!"

なんだか、PHPとちょっと違いますね。 「=」が出てくるところが。コンパイルは以下のように呼び出します。

% ghc hello.hs -o hello

hello hello.hi hello.oという3つのファイルが出力されました。実行プログラムを実行してみました。

% ./hello
Hello, World!

コンパイルせずに、インタプリタを使って実行することもできます。

% runghc hello.hs
Hello, World!

インタプリタによる実行はすこしもたつきます。実行時間を測ってみました。

% time runghc hello.hs
Hello, World!
runghc hello.hs  0.01s user 0.27s system 100% cpu 0.284 total
% time ./hello
Hello, World!
./hello  0.00s user 0.01s system 116% cpu 0.007 total

テキストによると、インタプリタの起動に時間がかかるとのこと。

もう一つ、対話形式でプログラムを実行する ghci コマンドがあります

% ghci
   ___         ___ _
  / _ \ /\  /\/ __(_)
 / /_\// /_/ / /  | |      GHC Interactive, version 6.6.1, for Haskell 98.
/ /_\\/ __  / /___| |      http://www.haskell.org/ghc/
\____/\/ /_/\____/|_|      Type :? for help.

Loading package base ... linking ... done.
Prelude> putStrLn "Hello, World!"
Hello, World!
Prelude> :quit
Leaving GHCi.

ghciの終了コマンドは:quitまたは:qですが、これはvimと同じなのでvim使いには都合がいいですね(笑)

今回のまとめ

  • UNIX sortを調べてみた
  • Haskellで書いたプログラムを実行する3つのツール、ghc, runghc, ghciを使ってみた
ふつうのHaskellプログラミング ふつうのプログラマのための関数型言語入門ふつうのHaskellプログラミング ふつうのプログラマのための関数型言語入門
青木 峰郎 山下 伸夫

ソフトバンククリエイティブ 2006-06-01
売り上げランキング : 11720
おすすめ平均

Amazonで詳しく見る
by G-Tools

バシャログスタッフによるWebサイト制作サービス

トラックバック

このエントリーのトラックバックURL
http://c-brains.jp/cgi-bin/mt/###/1384
###はmt-tb.cgiに変更してください。

ページの先頭へ

POPULAR TAGS
  • バシャログスタッフによるWebサイト制作サービス

ARCHIVE

特集

  • ステップアップ!CakePHP
  • 作って学ぶjQuery