cat再実装の続き
cat - syobosyobo softdevの続き。
引数にファイル名を渡すと、ファイルを連結表示する。
引数なしなら、標準入力を用いる。
#! /usr/bin/gosh (use file.util) (define (cat args) (define (count n) (if (= n (length args)) #f (begin (print (file->string (list-ref args n))) (count (+ n 1))))) (count 1)) (define (main args) (set-signal-handler! SIGINT (lambda _ (exit 0))) (if (eqv? 1 (length args)) (while (print (read))) (cat args)) 0)
インデントの感覚がよくわからないので、適当に字下げしてます。
あとはループで苦労したり。たぶん今までの感覚とはだいぶちがうんだろうなぁ。
以下のサイトのGaucheのソースなんかを参考にしてみました。
速度計測七題 - osdev-jの日記 - osdevjグループ
難しいけど、なんやかんやと新たな感覚が身についているようで、たのしいぞ!!
(print "Thanks!! Scheme and Gauche!!!")