脳移植により他人の脳片を埋め込まれた男が変わっていく。それを自分で自覚しているところに残酷さがある。記憶の中の自分と現在の自分の考え方・性格・能力が移植の前後で滑らかにつながっていないから、自分の記憶が他人の記憶に思えたり(1)、現在の自分が自分でなく思えてくる(2)*。
主人公・成瀬純一の言葉
生きているというのは、単に呼吸しているとか、心臓が動いているとかってことじゃない。脳波が出ているってことでもない。それは足跡を残すってことなんだ。後ろにある足跡を見て、たしかに自分がつけたものだとわかるのが、生きているということなんだ。だけど今の俺は、かつて自分が残してきたはずの足跡を見ても、それが自分のものだとはどうしても思えない。二十年以上生きてきたはずの成瀬純一は、もうどこにもいないんだ (p.p.236-237)
それに対する堂元博士の言葉
君は昔自分がつけたはずの足跡が、自分のものでなくなったという。しかしそれでもいいではないか。(略)。だが彼ら(注・老人)はやがて自分の足跡がどこにあるのかも、自分が足跡をつけたという事実さえ忘れてしまうという状態になる。(p.p.260-261)
他人事じゃあないんだよね。脳移植はなくても自分が自分でなくなる恐怖ってのは長寿とセットになって誰にでも降りかかってくるんよね。
* (1)と(2)では自分の依って立つものが違うんだけど一体どっちが「自分」なんでしょうね。成瀬純一は記憶の方が本来の自分だと「知って」たわけだけど、それを隠されると……。
[1].each{ break }
は無問題。
f = proc { break } [1].each(&f)
は
in `each': break from proc-closure (LocalJumpError)
となる。差別だよ。撤廃撤廃。[ruby-dev:12070]。orz
状況によって Array#eachと Array#reverse_eachを使い分けたくて、でも処理内容は一緒だからブロックを使いまわそうとして、予め Procオブジェクトにしておいたら上記のエラーに遭遇した、と。
def hoge(&block) puts 'hoge start' yield puts 'hoge end' end hoge { puts 'next'; next } hoge { puts 'break'; break }
これ↑の実行結果はこう↓なる。
hoge start next hoge end hoge start break
ブロックで breakすると、hogeの yieldより後ろが実行されてない。
def hoge(&block) puts 'hoge start' begin yield ensure puts 'hoge end' end end hoge { puts 'next'; next } hoge { puts 'break'; break }
こう↑すると勝手に実行をスキップされない。
hoge start next hoge end hoge start break hoge end
yieldの呼び出しには注意が必要だったのだな。
そういうことです。補足はありません。
細かいことは以前の日記に書いてあるので、ここではビャッとソースを引用。
# index_list.rb # # 「最新」「月」表示に対応した目次を表示。 # recent_listやtitle_listと違い日付のリンク先は日別表示でなくページ内。 # その為に、diary.rhtmlをいじって日付にアンカーを付ける必要がある。 # 骨格にrecent_list.rbを使用。 # [2005-06-15] tdiary-2.1.1 N日表示対応 # [2005-04-20] 月表示では昇順に。 def index_list(date_format = nil, show_title = true) if(@mode == 'latest') limit = @conf.latest_limit; elsif(@mode == 'month') limit = 31; else return ''; end date_format ||= @date_format; latest_start_ymd = @date.strftime('%Y%m%d'); result = %Q[<ul class="index-list">\n]; b = lambda {|ymd| next if(@mode == 'latest' && latest_start_ymd < ymd); break if(limit <= 0); diary = @diaries[ymd]; next unless(diary.visible?); result << %Q[\t<li><a href="##{ymd}">#{diary.date.strftime(date_format)}</a>]; if(show_title && diary.title) result << %Q[ #{diary.title}]; end result << %Q[\n\t\t<ul class="index-list-item">\n]; i = 1; if(!@plugin_files.grep(/\/category.rb$/).empty? && diary.categorizable?) diary.each_section{|section| result << "\t\t<li>"; result << section.categories.collect{|c| category_anchor("#{c}")}.join; result << ' '+section.stripped_subtitle_to_html if(section.stripped_subtitle); result << "</li>\n"; i += 1; } else diary.each_section{|section| if(section.subtitle) result << %Q[\t\t<li>#{section.subtitle_to_html}</li>\n]; end i += 1; } end result << "\t\t</ul>\n\t</li>\n"; limit -= 1; } begin @diaries.keys.sort.send( (@mode=='latest' ? :reverse_each : :each), &b); rescue LocalJumpError # <- break # Procオブジェクトで breakは使えないのだろうけど # それをブロックとして渡してるんやからエラーにせんでもええやん。> ruby-1.8.2 end result << "<ul>"; return apply_plugin(result); end
文字通りチャンネルをまわしてた頃のテレビのような。
土砂降りの雨でパンツの中まで濡れた日から半年以上に渡ってポケットの中の A1301Sは不調でした。
丸一秒間押し続けないとキー入力を認識しないのです。実際の仕組みは知らんけど、仮に正常なら 0.1秒毎にキーの押し下げ状態をスキャンしてたとして、それが 1秒毎になったような。
ワンプッシュ一秒。11桁の番号なら 11秒。このじれったさ。
それが何? 一昨日 1mの高さから落としてからこの半年がなかったみたいに正常に動いてるやん。
機械は叩けば直るというのは平成の今日に至っても真実なのですか。一昨日までの不便を思うとこんなオチにがっかりですよ。