challenge コマンドライン引数の取得

以下にけだし同感なので。

inferno :: どう書く?orgは多言語クックブックになれるか > 一般投稿が可になった時に、ちょっと感じてたんですがやっぱり最近ある傾向が顕著で。というのは数学パズル系とか、(数学的な、事務処理などではない)アルゴリズム勝負!なお題ばっかりなんですよね。

というわけで、たまには簡単でその場で答えが出て、なによりある言語使いにとって「外国語」ではこういうんだというのがわかる問題として考えてみました。

% program a b c d

で a, b, c, d を得るにはどうしたらよいかという、それこそネイティブには刺身タンポポより簡単だけど、「外国人」にはとっさに浮かばないという問題です。

Dan the Practical Programmer

Posted feedbacks - Smalltalk

Smalltalk では処理系依存です。Squeak Smalltalk では、 起動時に

Squeak my.image program.st a b c d

のように記述し、スクリプト中では SmalltalkImage>>#getSystemAttribute: の引数 3 以降で取り出せます。

1
2
3
4
5
6
| args |
World findATranscript: nil.
args := (3 to: 6) collect: [:idx | SmalltalkImage current getSystemAttribute: idx].
Transcript cr; show: args

"=> #('a' 'b' 'c' 'd') "

GNU Smalltalk。Cのgetoptっぽい機能が付いてます。

1
2
3
4
5
6
Smalltalk arguments print.
Smalltalk arguments: '-c -d:' do: [:o :n| {o. n} print ]!
"
$ gst 114.st -a a b -c -dFuga
=> ('a' 'b' '-c' '-dFuga' )(nil 'a' )(nil 'b' )($c nil )($d 'Fuga' )
"

Index

Feed

Other

Link

Pathtraq

loading...