HOME | 1. Haskell とは | Haskell のお勉強 | 3. 関数を定義する | 書き込む |
01: -- Say hello 02: module Main where 03: import System 04: 05: main = do av <- getArgs 06: putStrLn $ "Hi, " ++ (av !! 0) ++"!"図1:hi.hs
01: #! usr/bin/env runhugs 02: 03: \begin{code} 04: 05: module Main where 06: import System 07: 08: main = do av <- getArgs 09: putStrLn $ "Hi, " ++ (av !! 0) ++ "!" 10: 11: \end{code}図2:hi.lhs
1 行目はスクリプトを実行ファイルにするとき呼び出すインタープリターを指定します。 (Perl, Python, Ruby と同様)
01: #! usr/bin/env runhugs 02: 03: 04: >module Main where 05: >import System 06: 07: >main = do av <- getArgs 08: > putStrLn $ "Hi, " ++ (av !! 0) ++ "!" 09: 10:図3:hi2.lhs
コマンド | 省略形 | 動作 |
---|---|---|
:load file | :l file | file をロードする。 |
:reload | :r | 最後にロードしたファイルを再ロードする。 |
:quit | :q | hugs を終了する。 |
:? | :? | ヘルプを表示する。 |
例えば図4のコードを Qsort.hs という名前で保存し、図5のように hugs に打ち込むと、 リストをソートした結果が表示されます。
01: module Qsort where 02: 03: qsort _ [] = [] 04: qsort f (x:xs) = before ++ (x : after) 05: where before = qsort f $ filter (not . (f x)) xs 06: after = qsort f $ filter (f x) xs図4:Qsort.hs
D:\doc\05-03\haskell>hugs __ __ __ __ ____ ___ _________________________________________ || || || || || || ||__ Hugs 98: Based on the Haskell 98 standard ||___|| ||__|| ||__|| __|| Copyright (c) 1994-2003 ||---|| ___|| World Wide Web: http://haskell.org/hugs || || Report bugs to: hugs-bugs@haskell.org || || Version: Nov 2003 _________________________________________ Haskell 98 mode: Restart with command line option -98 to enable extensions Type :? for help Prelude> :l Qsort.hs Qsort> qsort (<) [8,3,5,2,7,1,9] [1,2,3,5,7,8,9] Qsort>図5:Qsort.hs を読み込んで実行。
D:\doc\05-03\haskell>runhugs hi.lhs Taro Hi, Taro! D:\doc\05-03\haskell>図6:runhugs を使ったプログラムの実行。
D:\doc\05-03\haskell>ghc --make hi.hs -o hi.exeとすると hi.exe が生成します。 --make としておけば複数のファイルも自動的にコンパイルしてリンクしてくれます。 あとは普通に実行するだけです。
D:\doc\05-03\haskell>hi Hanako Hi, Hanako!もし、ファイルサイズが気になるようでしたら strip してください。
D:\doc\05-03\haskell>strip hi.exe
HOME | 1. Haskell とは | Haskell のお勉強 | 3. 関数を定義する | 書き込む |