■ 更新しなくていいブログはないか
ブログ更新しようかな → あ、鉛筆をあれする会の報告しなきゃ → デジカメの画像編集したりすんの面倒だな → 暇なときにやろう → 会の報告もせずに関係ない記事を更新するのも何だから更新もまた今度にしよう
■ メモ
小林 めぐみ (著)
徳間書店、2002
SFマガジンのブックレビューの欄で見た。
あと、いつのまにか世界SF大会が終わっていたことに気づいた。
■ 2chまとめ
軽く期待されてるようなので2ch主観的まとめを書かなければならないと思いつつ。
2chの話ばかりしていると知りあいからイヤミを言われたりするので気持ちが億劫なんだ。
しかしはじめる。
現在覚えている範囲で言いますと、数日前に見た「今、うんこしてきたけど何か質問ある?」というスレッドが印象に残っています。予定調和的な展開ではありますが、5レス目あたりで釣り宣言をしていたところも非常に馬鹿馬鹿しく、まさに期待通りの展開でした。うんこは皆がするものなので、「うんこしてきた」などと言われても、したい質問など特に思いつかないと思うのですが、皆は「ぼくもうんこしてきていいですか?」などと小学生感あふれる質問を>>1にぶつけていました。
次のスレッドは数週間ほど前に見たものですが、最近ふと思い出したので報告します。
確かはじめの趣旨は、「妹がバカすぎるので何とかしたい」などという題目をかかげた安価スレッドでした。
ちなみに安価スレというのは、>>1が「>>100」などと未来のレス番号に対してアンカー(リンク)を張り、そのレス番号にきたメッセージ通りのことをするスレッドのことです。多くの場合、恋愛相談などに使われ、意中の異性に安価で指定されたメールを送る、などという使われ方をすることが多いようです。一言で言えば、電車男をテンプレート化・ゲーム化したようなスレッドだと思ってもらえばよろしいのではないでしょうか。
細部は忘れましたが、>>1の妹は髪の毛を真っ赤に染めて、悪い男とつきあい、親に堕胎費用を出させ、学校には行かないといった感じの人物でした。安価での指示に従い>>1が妹に説教をはじめたところ、妹はすぐにキレ「アニキまじ腹たつ。もうケンジ呼んだかんね。ケンジにぼこってもらうから」と暴力的な彼氏を電話で呼びつけます。ガタイのよい彼氏は木刀をもって颯爽と登場し、兄である>>1に木刀で殴りかかります。しかし>>1は機転をきかせて部屋にとじこもり、ちょっとドアを開いてケンジが首をつっこんだところで思いきりドアを閉めるなどという頓知の効いた手段で反撃にでたそうです。
騒ぎを聞きつけて2人の両親が登場し、それから、>>1の父親がケンジと妹に説教をするという展開になりました。>>1の父親はスポーツクラブを経営する豪傑で、とても怖い人らしいです。>>1も口をはさもうとしましたが、「おまえはだまってろ!」と部屋からつまみだされてしまいました。ケンジはおそらくちょっといいところを見せようと思って木刀を持って参上しただけなのですが、>>1の父親から叱責を受け、蹴られ、あまつさえケンジとは関係ないらしい堕胎の件で手厳しく叱られる羽目になってしまいました。
後半は部屋から追い出された>>1が部屋の外から垣間見えた説教の様子を報告するという形になったのですが、ケンジと妹が怖いお父さんに怒られているところを外からのぞいているシーンがなぜかとても印象的だったため、ふとした瞬間に、その場面のことを思いだしたのです。
■ or と unless が同値である件
orとunlessは真理関数的には同値であり、わたしは以前からそのことが不思議でならなかった。
ふと、プログラムだとどうなるんだろうと疑問に思ったため、試してみた。ruby。
puts("unless1 left") unless puts("unless1 right") #1
puts("unless2 rigth") unless (1 == 1) #2
(1 == 1) unless puts("unless3 right") #3
puts("or1 left") or puts("or1 right") #1
puts("or2 left\n") or (1 == 1) #2
(1 == 1) or puts("or3 right") #3
print("\n\n")
puts((true unless true))
puts((true unless false))
puts((false unless true))
puts((false unless false))
print("\n")
puts((true or true))
puts((true or false))
puts((false or true))
puts((false or false))
=>実行結果:
unless1 right
unless1 left
unless3 right
or1 left
or1 right
or2 left
nil
true
nil
false
true
true
true
false
真理関数だけでなく、式の実行とかあるからどうかなと思ったが、一応きれいに左右対称の結果になった。
つまり、「A unless B」は「B or A」と等しい。
unless の場合、#1 は「右→左」の順で実行される。#2は実行されない。
or の場合、#1は「左→右」の順で実行される。#3は実行されない。
"unless"については、
http://www.ruby-lang.org/ja/man/?cmd=view;name=%C0%A9%B8%E6%B9%BD%C2%A4#unless.20.bd.a4.be.fe.bb.d2
右辺の条件が成立しない時に、左辺の式を評価してその結果を返します。 条件が成立しなければ nil を返します。
"or"については、
http://www.ruby-lang.org/ja/man/?cmd=view;name=%B1%E9%BB%BB%BB%D2%BC%B0#or
まず左辺を評価して、結果が偽であった場合には右辺も評価します。
とあるから、左右対称の結果になるのは正しいはず。
ただし、「ture unless ture」だと nil が返るから、やっぱり or と unless は異なる振舞いもする。
(ruby の nil は偽の扱い)。
「3 が奇数でないならば、1 は奇数だ」は、前提が偽の推論であるから真として扱いたい、というリクエストも中にはあったりなかったりするのではないかと思うのだが、そういう実装にはなっていないようだった。
そのうち他の言語でも試してみようと思う。
追記:
途中の部分をコピペし忘れていたので貼った。
(「print("\n\n")」から「puts((false or false))」までの部分)
コメント(2)
コメントする
トラックバック(0)
このブログ記事を参照しているブログ一覧: 雑記2007年9月13日(木)
このブログ記事に対するトラックバックURL: http://www.at-akada.org/mt/mt-tb.cgi/391
>2chの話ばかり
もっとすべきだ!
』 (2007/09/13 23:46)うむ、そういう言葉があるとやる気がでてくる。
』 (2007/09/14 1:25)