«前の日記(2006-05-22) 最新 次の日記(2006-05-24)» 編集

Matzにっき


2006-05-23 [長年日記]

_ 依頼

ある程度名前が「売れてしまった」せいか、最近、仕事の依頼が多い。

まあ、「原稿書いてください」くらいなら、分量がたいしたことなければ ほいほい受けてしまうのだが、なかには躊躇するものもある。

たとえば、O'Reilly Networkから来た以下のようなもの。

200行くらいのプログラムをサカナに「コードの美しさ」について語ってください。 2000ワードくらい(もちろん英語で)。

ここまでなら、どうということはない。しかし、次の部分を読んで驚愕した。

他にも何人かに頼んでいます。 すでに引き受けてくださった人にはBrian Kernighan, Guy Steele, Diomidis Spinellisなどがいます。あなたも引き受けてくださるとありがたいのですが

えーと、こんな有名人の中でなにをしろ、と。

_ 日経Linux初校

日経Linux 7月号初校を校正。 今回は39行もオーバーしたので削るのに奔走する。 しかし、いつもながら、日経の編集の人はプロの仕事をするなあ。

_ 『メガネっ娘のほしのあきがPSPに熱中! - SCEI「カズオ」イベント開催

「カズオ」ってのは数独のことなんだね。 数独についてはRubyQuizのネタにもなっていて、 少し知ってはいたんだけど、こんなに注目されていると走らなかった。

で、ルールは知ってても遊んだことはなかったので、実際にやってみる。 ksudokuをインストールして遊んでみると....これは面白いわ。 あっという間に時間が過ぎてしまう。

_ [Ruby] argument list 2.0

Ruby2では、引数リストについて修正を加えようと思う。

具体的な変更点は以下の通り。

  • 引数を渡す側では「*」単項演算子(リストの展開)を任意個置けるように。
  • 引数を受け取る側では、「*」単項演算子(リストとして受け取る)の後ろにも必須引数を置けるように。「*」単項演算子は最大1個。

つまり、

def foo(a,b=1,*c,d)
  p [a,b,c,d]
end

a1=[9,8,7]
a2=[6,5,4]
foo(1,2,*a1,3,*a4,5)
# => [1,2,[9,8,7,3,6,5,4],5]

という感じ。

ただ、問題が二つ。

  • nodeの構造が変わるのでripperとYARVの対応が手間
  • このあたりyacc記述が入り組んでいて、どこから手をつけていいのかよく分からない

取り掛かる前には「やればすぐ」と思ったのだが、 特にyaccが難物で、全然進まない。

本日のツッコミ(全4件) [ツッコミを入れる]
_ telkaz (2006-05-30 13:19)

(* Mathematica でいう Sequence[] を考えたい *)<br><br>いっそ,*arg を,Mathematica のSequence[] として,<br><br>a1=[9,8,7]<br>a2=[6,5,4]<br>foo(1,2,[*a1,3,*a4],5)<br># => [1,2,[9,8,7,3,6,5,4],5]<br><br>としたいです.<br>(* ごめんなさい. *)

_ まつもと (2006-05-30 17:44)

Mathematicaのことはよく知らないんですが、例示された機能は出来るようになる予定です(配列リテラルでも単項*が複数使えるようになる)。

_ telkaz (2006-05-31 16:02)

ありがとうございます.<br><br>(* 2004/10/11 の日記「図書館で Mathematica の本を借りた」というのを覚えていて,うっかり matz さんは Mathematica が好きなのだと勘違いしていました〜.<br>*)

_ まつもと (2006-05-31 18:47)

本を借りたのは興味があるからです。<br>でも、実際に使わなかったせいでしょうか、さっぱり身につきませんでした。<br>本を読むだけで理解できた言語も多いんですけどね。

お名前:
E-mail:
コメント:
[]

«前の日記(2006-05-22) 最新 次の日記(2006-05-24)» 編集

track feed Matzにっき Creative Commons License This work is licensed under a Creative Commons License.