2012年5月6日日曜日

Scheme第15歩

だらだらやってるうちに3週目に入ってしまったので、そろそろ実用的なところへの着地を考える。コマンドライン引数の話。

ちょいとしたスクリプトを書くにあたって、コマンドライン引数を使いたい場合は多い。そこで、Gaucheで引数を取得する例。
#/usr/bin/env gosh
(define main
  (lambda (args)
    (let loop
      ((as args))
      (unless (null? as)
        (print (car as))
        (loop (cdr as))
      )
    )
  )
)
mainという名前のプロシージャは特別で、存在すればコマンドライン引数のリストとともに呼び出される。上のスクリプトを適当なファイルに保存して、実行可能属性を付けて実行すると、goshのコマンドライン引数。すなわち、スクリプトファイル名と(存在すれば)その引数が1行ずつ表示される。
なお、mainの評価値が整数なら、それがgosh自身の終了ステータスとなる。

インデントの付け方に、未だに迷ってる…。

0 件のコメント:

コメントを投稿