プログラム質問箱への投稿
記事番号00628へのフォローを投稿します。
お名前(ペンネイムで結構ですが必要です)
(
ブラウザに個人情報を覚えさせない)
電子メイルアドレス(必要です)
題名(必要です)
Home Page がある方はリンク希望先の URL を記載して下さい
会議室に載せたい内容を以下へお書き下さい (
HTMLを解釈せずにそのまま表示)
2月10日に、Yasu.Fさんは書きました。 >丁寧な回答をありがとうございます。 >フォローが遅くなってしまって申し訳ないです。 > >2月8日に、三葉工房の管理者さんは書きました。 > >>A.これは,MacParl上のテスト用で,適当にmartとかgghとかの名前を付けただけです。 > >ちょっとした(簡単な、短い)コードのテストでしたらこれでも問題は無い >でしょうけど、少し込み入ったことをしようとすると途中で何が何だか >わからなくなる可能性もありますので、 > > - 適切な名前を考える手間 > - いい加減に付けた名前が何を意味しているのか考える手間 > - 上記のどちらのほうがコストが掛かるか考える手間:) > >などを比べたうえでのバランス感覚でしょうね。 > ># いつでも適切な名前を考えろ、と言っているわけではないです ># わたしもone-liner(“一行野郎”、シェルのコマンドラインで、 ># "perl -e" の引数として直接入力して実行するような単純なプログラム)を ># 書くときなどは、面倒くさいので変数には大抵いい加減な名前を付けます > >>A.適当な称号を使っているので,自分か,若くは,よほど簡単なプログラムでなければ >>分からないと思います。 > >それだと、他人に見せるためのプログラムとしては不親切ですよね。 >相手が知りたいのは、「あなたがどんな文字列をタイプしたか」ではなく、 >「あなたがどんなコードを実行しようとしたのか」なのですから。 > >>A.そうですね。プログラムは,分かり易く書くべきと思います。だんだん,プログラミングに >>慣れるに従ってメチャクチャになりましたので。 > >たぶん逆だと思います。というより、逆でないと将来きっと困ることになります。 > >よい癖でも悪い癖でも、身に付けるのは簡単ですが、取り除くのは至難の >技です。同じ癖なら、よい癖のほうを最初から身に付けておいたほうが幸せに >なれるでしょう。 > >>># ちなみに、何故「17」ではなく「16」なのか理解してます? >> >>A.配列は,C Languageと同じく0から数えるから。17は,$arrycnt=@arryと言う >>形の配列の値の合計値を数えている。 > ># 「配列の値の合計値」って、どういう意味で使ってます? ># 「配列に含まれる要素の数」ではないですか? > >そうではありません。 ><A href="00604.html">元の記事</A>のプログラムを、目を凝らしてよぉ〜く読んでみてください。 > ># ヒント: ># $foo = "one ># two" . ># "three"; ># $bar = "four"; ># print $foo, ># $bar; ># は何を表示するか? > >>A.上記の >>>同様に、$scalar = @array;をMacperlで実行してみました。 > ># まずご自分で考えてみて、それから実際に実行して、結果を比較して ># いただけると、もっとよかったのですが;) > >>@arrayを$scalarへの1回目の代入は,@arrayの配列が記述されていますので, >>3が返ります。 >>しかし,更に@arrayの入った$scalarから更に配列へ代入すれば,それは,単なる >>1要素に過ぎないとみなされますので,@arrayを$scalarへの2週目の代入で値は >>1が返ります。 > >だいたい合っていると思います。 > ># キーワード: 「スカラコンテキスト」「リスト(配列)コンテキスト」 > >>A.上記の質問は,黒幕的存在という記事で答えました。本来は >>foreach $keymatch(@keymatch){ >(snip) > ># おや、「プログラミングの書法」はどうなりましたか? ;) > >>A.その様に次回から心がけます。(これだけ無作法な行為をして投稿する資格は >>あるはずないのですが。) > >そんなことはありません。 > >ほんとうに嫌がられるのは、間違った内容を投稿することでも、分かりづらい >文章を投稿することでもありません。 >それらを指摘されても改善しようとせず、同じような投稿を繰り返すことです。 > >「過つは人の常」。大事なのは、そのあとどうするか、です。 > >>1.YASU様は,perlを始めて何年になりますか。 > >最初にPerlに触れたのは、NEC PC-9801DAという古いマシンで動く、MS-DOSという >これまた今となっては古くさい(しかし何故かWindows98の根幹を成している:) >OSに移植された 日本語化Perl 4.036 というバージョンです。 >これが、既に曖昧になってきている記憶を辿ると、1995年のことだったと >思います。 > >ですから途中のブランクを無視すれば、Perl歴は約4年ということになる >でしょうか。 > >>2.perlのプログラミングで一番つまづいた経験はなんですか。 > >そうですね… いちばん苦労したのは、Perlの「TMTOWTDI (There's More Than >One Way To Do It; それには何通りもの方法がある)」というスローガン >そのものを体に馴染ませること、でしょうか。 > >自由度が高いということは、裏を返せばそれだけ節操の無い書き方ができると >いうことでもあります。TMTOWTDIだからといって、「どれでも結局同じ >なんだから適当に選んどけばいいや」とやってしまうと(もちろんこれでも >いい局面もありますが)、あとで誰かが(あるいは自分自身が)プログラムを読む >ときに、作者がどういう意図を持ってそのコードを書いたのかが伝わりにくく >なってしまいます。 > ># ある意味では、「名前の付け方」と同じ問題がここにもある、とも言えます > >例えばPerl5では、次の3つの文はほぼ同じ働きをしますが、それぞれの持つ >「意味合い」は少しずつ異なっています: > > foo("bar") or baz($zot, @qux); > baz($zot, @qux) unless foo("bar"); > baz($zot, @qux) if not foo("bar"); > >「TMTOWTDI、じゃあこの局面ではどうするのがベストだろう?」そういった >自分なりのプログラミングスタイルを見出すまでの間、たくさんの「読み出し >不能な」プログラムが、ハードディスクの中に現れては消えていきました。 > >>3.回答者の方々は,ふだんは,どんな事をしているのですか。そして, > >普段はhacking(と自分では思っている行為)をやってます:) >ほかに、とあるISP(いわゆるプロバイダ)のサーバのお守りをしていることも >あります。 > >>TAD様とかにあ様と石堂様とかはかお知り合いですか。 > >知り合いといえば知り合いです。もちろんお互いの顔や声も、ひとによっては >本名も全く知りませんが、立派な知り合いです。 > >―そして、三葉工房の管理者さんとも「知り合い」なのかも知れません(^^)
ホームペーヂに戻る
nir@mvg.biglobe.ne.jp
Last Update: 2 December 1999