1. 関数と引数 書き忘れていたが、Hugs は Windows でも使える。WinHugs がそれだ。ただし、アンインストールできないかもしれない。また、Vista で使うときには、Program Filesには入れず、C:\直下に C:\Hugs のようなフォルダーを作って入れたほうが無難だ。 Hugs> div 6 2 3 Hugs> sum [1,2,3,4,5] 15 Hugs> sin (pi * 0.5) 1.0 2. 関数と演算子 演算子は普通の計算のように、引数の間に置く、カッコも使える。 Hugs> (1 + 2) * 3 9 Hugs> "hello, " ++ "world" "hello, world" また、‘ (バッククォート)で囲むと演算子のように使える関数もある。 Main> 6 `div` 2 3 逆に + のような演算子も()で囲むと関数名のように使える。 Hugs> (+) 1 2 3 関数のほうが演算子より、優先順位が上だ。 Hugs> length [1,2] + length [3,4,5] 5 3. モジュールに定義されている関数の使い方 関数の中には、モジュールを読み込まないと使えないものがある。たとえば、sort は Hugs を立ち上げてすぐには使えないが、 Hugs> sort [2,1,8,7] ERROR - Undefined variable "sort" :load コマンドで List モジュールを読み込むと使えるようになる。(ghci のときは :module +Data.List) Hugs> :load List List> sort [2,1,8,7] [1,2,7,8] 4. 関数を連結する 関数は $ 演算子でつないで使うことができる。 List> reverse $ sort [2,1,8,7] [8,7,2,1] 5. エディタで関数を定義する Hugs の関数の定義は、コマンドラインからはできず、ファイルを作成しなければならないが、:edit コマンドでファイルを編集できる。ただし、Linux の Hugs の場合は、コマンドラインから Hugs を立ち上げるときに、hugs -Evi のように -E オプションでエディターを指定する必要がある。(ghci では Prelude> :set editor vi) List> :edit fact.hs fact.hs の中身 fact :: Integer -> Integer fact 0 = 1 fact n | n > 0 = n * fact (n-1) ファイルは使う前に :load する。 List> :load fact.hs Main> fact 5 120 6. コマンドラインで関数を定義する 使い捨てのプログラムを試すのに、ファイルを作るのが面倒な時は、定義を where 句以下に置く、このとき文の区切りに ; (セミコロン)を置く。 Main> fact 5 where fact 0 = 1; fact n | n > 0 = n * fact (n-1) 120 注: ghci の場合はwhereは let キーワードの後でしか使えないのであらかじめ fact を定義して使う。 Prelude> let fact 0 = 1; fact n | n > 0 = n * fact (n-1) Prelude> fact 5 120 以上がマニュアルを探しても簡単には見つからない、Hugsで関数を使うときのコツだ。これだけ分かっていれば、後は参考書やウェブの Haskell のプログラムを打ち込んで走らせてみることができる。 Huskell は説明はやたらと難しいが、使ってみると考えたことがそのままプログラムにできる感じで使いやすい。しばらく使ってその感触に慣れてから本を改めて読むと分かりやすくなる。自分で理解できた部分だけでいいからしばらく使ってみると、Haskell の楽しさが分かる。
by tnomura9
| 2009-08-07 06:46
| Haskell
|
Comments(0)
|
カテゴリ
新型コロナウイルス 主インデックス Haskell 記事リスト 圏論記事リスト 考えるということのリスト 考えるということ ラッセルのパラドックス Haskell Prelude Ocaml ボーカロイド 圏論 jQuery デモ HTML Python ツールボックス XAMPP Ruby ubuntu WordPress 脳の話 話のネタ リンク 幸福論 キリスト教 心の話 メモ 電子カルテ Dojo JavaScript C# NetWalker ed と sed HTML Raspberry Pi C 言語 命題論理 以前の記事
最新のトラックバック
最新のコメント
ファン
記事ランキング
ブログジャンル
画像一覧
|
ファン申請 |
||