問題2

この前の問題2が少し気になっていた。

交互に要素を取ることで、2つのリストを結合する関数を記述せよ。例えば [a, b, c]と[1, 2, 3]という2つのリストを与えると、関数は [a, 1, b, 2, c, 3]を返す。

というやつである。

というわけで、std::array<char, 3>std::array<int, 3>を受け取ってstd::tuple<char, int, char, int, char, int>を返す関数を書いた。

続きを読む

variadic template で reverse

今日、ふと思ってこのようなものを実装できないか考えてみた。

template<template<typename ... T> class target, typename ... T_args>
struct reverse
{
    typedef target</* reversed T_args... */> type;
};

例えば、

typename reverse<std::tuple, int, double, std::string>::type t =
    std::make_tuple("foo", 3.14, 42);

みたいなことができてほしい(今書いているコードでできる必要があったわけではないが……)。とっとと実装を見せろ、という人はこの記事の最後にコードの全体がある。

続きを読む

ソフトウェアエンジニアなら1時間以内に解けなければいけない5つの問題 in C++

 何気なく調べ物をしていると、全然関係なかったのだが「ソフトウェアエンジニアなら1時間以内に解けなければいけない5つの問題」なる記事が目に入った。流行ったのは去年の夏前頃のようだが、遅ればせながら参戦してみた。一番よく使っている言語、C++で。結論から言うとクリアできたのでソフトウェアエンジニアの必要条件は満たしているようだ。

続きを読む

何度目になるのだろう

 自分が考えたことを公開するための場を持つのは。始めた後少しの間は続くのだが、数ヶ月くらい経つと放置するようになってしまい、半年も経ってから見ると書いていた当時と感覚が変わってしまっていたりして、何となくそこに自分の作った何かを追加することが躊躇われるようになってしまう。

 しかし以前に書いたものでも、今も共感できる、というか、自分が書いたものだと感じられるものは残っているので、そういったもので当たり障りのないものは一部移植していきたい。

動作の主について

 何かしら危ない目に遭ったり、スポーツをしているときなど、思考が非常に素早く流れるように感じられることがある。いまさっき、台所で包丁を落としかけてその現象に遭遇した。しかし今回体験してみて、自分が「とても早くものを考えていた」ということを認識したのはことが済んでからだったという非常に当たり前のことを知った。そして恐ろしいことを思った。

 普段自分が何かを考えているということを知るのは、いつもそれが終わってからだ。自分が考えていることが言葉として頭に浮かんでくる、あるいは何か図式的なイメージを意識的に脳裏に浮かべるためには、自分が何を考えているかについて考えなければならない。少なくともそこに、知る・語る・イメージするための1過程があるだろう。こうして筆を執っている「私」、自覚的な「私」、「私」のそばにいる方の「私」は、常に考えの最先端から取り残されている。そしていつもさっさと決定を下し、体の動きを決めているのは、奥に引きこもっている私、無口で得体の知れない私、「私」とはどこか別のところに潜んでいる私のように思えた。

 昔から不思議だった。何かを考えるとき、常に言語を用いて考えを1つずつ先へ進めていくわけではなく、何か、曰く名状しがたいものを頭の中でこねくり回して(あろうことかこねくり回している間、「私」はどうやってこねくり回しているかすらもよくわかっていない)、ある時それは降って湧いてくる。そうして「私」は答えと確信を、またはあきらめと妥協点を、また或は憶測と試してみる価値のあるものを得る。意識のうち、他の部分の活動を言語化・図案化してモニタしている部分に渡されるのはいつも感情と思索の完成品だけで、「私」は自分の脳がどのようにそれを生み出したのか知る由もない。

 ずっと不思議だったのだ。本を読んでいたり、話している最中に、つまり言語を紡いでいる真っ只中なのに、ちょっと待てよと立ち止まり、考えを整理するあの瞬間、それまで言語の明かりを点していた私の頭蓋の中から明かりが消える。そして暗闇の中で何事かが起き……その間「私」は意識的に何も考えないようにしている時と、後で思い返す限りでは同じ状態になる……答えが出てくる。

 あの間、私は何をしているんだろう?

 初めてこのことを疑問に思ったのは恐らく小学生の頃だったと思う。当時は、考えているつもりで実は何もしていないのではないかと思って、考え事をしているとき頭の片隅で少しばかり焦っていた。沈思黙考している間、黙ってじっとしている私が何を考えているか他の人が見てもわからないのと同じくらいには、自分でも何をしているかわからないからだ。しかし最終的にいつも答えは出てくる(フラストレーションと諦めに終わることもある)。なので何かが起きているということになる。それがさっぱりわからない。「私」は自分で自分の思考の過程を全て追おうとしたこともある。つまり、何を前提にして、何を仮定し、何を導くか、全てのステップを意識的に行おうと思ったのだ。私の手綱を「私」が握ろうとしたのである。半ば当然ながら、それは失敗に終わった。突然ひらめくのを止めることはできないし、ひらめく過程を追うこともできず、またそのようにすると圧倒的に思考の効率が悪くなるのだった。

 「私」が認識している自分自身は、思っているよりも少ない部分なのかもしれない。もしあの暗闇の奥で蠢いている何かがある日入れ替えられたとして、「私」はそれに気づけるだろうか? 例えばある日頭を打って、何かを思いつくまでの時間や思いつく内容、溢れ出す感情が入れ替わったとしても、過去の自分と対照実験でもしない限り私はそれに気づけないだろう。「私」はいつも自分自身の傍観者だった。そして、自分の考えを再認識して初めて「自分」がわかるようになる以上、そこが一体化することはあり得ない。たとえ言語に翻訳しなくとも、図式をイメージしなくとも、自分の思索の過程をその最先端で自覚することはあり得ない。最先端で起こっていることは常に思索以外の何者でもないのであり、自覚の過程はそれとは異なるプロセスだからだ。

 「私」にはどうしようもない。「私」はあまり深く潜れないので、不気味に暗い水面の下に何があるのか、それはどの程度の大きさがあって、どのようにして推進されているのか、「私」がそこに影響を及ぼしているのかどうかなどは知りようがない。「私」はただ、水面に浮かぶ氷山の上にただじっとして、自分に見える景色を眺めながら、私に身を任せて、漂って行くだけだ。


2018/8/1 移行

本当は何を聴いているのか

 電車に乗っているとき、たまに音楽を聴いていたりもする。  私の場合、普段聴く音楽はそうほいほい変わるものではない(CDを買う金銭的余裕がないというのが大きいのだが……)。もちろんプレイヤーの中に入っているのは既に何回聴いたかわからないようなものばかりである。しかしこの前電車内で音楽を聴きながら本を読んでいるとき、ふと自分の耳元で耳慣れない音楽が流れていることに気づいた。しばらくそちらに集中していると、10秒もしないうちに、それが聴いたことのある曲に変わった。変わったというよりは、それが見知った曲であるということに私が気づいたのである。

 実はこの現象はそう珍しいことではない。私はイヤホンで音楽を聴くとき、周囲の雑音と同程度の音量で聴くようにしているので、外を歩いているときや電車に乗っているときなど、別のことに集中していて、かつ周囲の雑音に音楽が埋もれがちなときによく起きる。実際に流れているはずの知っている曲と異なる曲に聴こえるというのはまだマシな方で、再生されているはずなのに全く何も聞こえないときもある。ところがこの手の現象では共通して、私がどんな曲が流れているかを知った瞬間、それまでが嘘のように何食わぬ顔で見慣れた旋律に姿を変えるのだ。

 この現象を認識したのがいつだったかはあまりよく覚えていない。ただ、そのときは不思議なような、妙に納得したような気持ちで、半分くらいしか驚いていなかった記憶はある。そのとき私はこの現象にこのような理由をつけた。あたかもイントロクイズ的な要領で一瞬自分が聴いている曲が何かわからなくなっていて、曲を長く聴くにつれ検索対象が絞られて行き、最終的にどの曲かわかったとき、感覚をその曲に関する記憶にフィットさせている、あるいは記憶が実際の感覚を補完しているのだと。しかしよく考えてみるとこの説明では色々とまずい部分が多い。聴き知った曲が異なる曲に聞こえる理由に説明がつかないし、違うように聞こえる曲から過去の私はどのようにして、その実体験を補完できるほどに濃密な記憶を作り出したというのだろう?

 なので私は読んでいた文庫本をポケットにしまい(音楽が耳に入っていることからわかるように、集中が切れたタイミングでもあった)、このことについてもう少し考えてみることにした。目的の駅まではまだ20分ほどあったし、帰りの電車だったのもあって少し疲れていて、ぼんやりと考え事をするのも悪くないと思ったのだ。

 まず、以前に聴いたときの記憶と今回の知覚のギャップはどこから来たのだろう。これは比較的容易く原因が思い浮かんだ。周囲の雑音——電車がレールの継ぎ目を跨ぐ音、周囲の人たちの話し声、車内放送などだ——によって、音楽はかなり聞こえづらくなっている。加えて、私は本を読んでいたので、少なくとも自覚できるレベルでは、BGMを完全に無視していた。これらの結果、自分の聴いている音楽が何であるかが少なくとも認識できていなかったこと、記憶と結びつかなかったこと、以前聴いたときよりも劣る体験になるということに説明がつく気がした。というのも、以前に同様のことがあったとき、私は音量を一時的に大きくして対応していたことを思い出したのだ。一度何の曲かわかってしまえば、雑音に混じってかすかに聞こえてくるだけの旋律から、記憶にあるイメージを呼び起こして十分音楽を聴いている気分になれる。これはなかなかエコかもしれない。更にもう一つの説明として、その曲の記憶というのは、様々な経験の複合体であり得るだろうとも思った。つまり、揺れる電車内で聴いた経験の他にも、静かな部屋でゆっくり聴いたときの経験、それもどの楽器にフォーカスしていたかで何パターンにも膨れ上がる経験の総和に近いものであり得る。そうなるとこれはもう一時に知覚できる経験の範囲を逸脱するのは当たり前で、静かな部屋で集中して聴いているときでもその密度を全面的には上回れないかもしれないとまで思えてくる。妄想に近い話で、実際にそのようなものであるかどうかはわからないが。

 そうすると気になるのは、私はあのわからなくなったときに一体何を聴いていたのだろうか、ということだ。数秒間聴いていたのに、私はその楽曲が何であるのか気づけなかった。他のことに集中しているならともかく……。あの音楽はどこから来たのだろう。はっきり言って私は、その曲が自分の聴き知った曲に変貌したとき、驚愕した。その二つの曲にはほとんど何の接点もなさそうに思えたからだ。意味が通りそうな、これまで経験して学習しているものに少しでも近いものを見いだそうと、私の脳は完全にはランダムでない雑音と完全に構造化された音楽の混合物の中に浮かんでは消える儚いパターンを、必死に抽出したのだろう。私は一体、雑音でコンタミしたインクのシミに等しい筈のキャンパスに、何を見て取ったのだろう?

 気になるのはそこだけではない。というより、そんなことよりも恐ろしいことがある。我々は普段、本当は何を聴いているのか、ということだ。何度も聴いた曲をもう一度聴いているとき、我々が聴いているのは、現実の知覚と自身の記憶と、どちらなのだろう? どの程度我々は、知覚の生データを、記憶にフィットさせようとするのだろう。どの程度我々は、知覚の生データから、記憶を修正していくのだろう。私にはわからない。

 人間の脳は混沌の中に沈んでいたパターンを、それが学習済みのパターンに合致するなら、引き上げてくることができる。空を眺めているとき、雲一つとっても、人によって見ている像は違うし、ロールシャッハ・テストなんかはよい例になるだろう。「人間は混沌の中に己の見たいものを見る」。同様に「聴きたいものを聴く」ことも可能だろう。パターンがありそうに見える対象に出会うと、我々はパターンを見いだそうと必死になる。そして言語として意識に上ってくるのは、いつも「私」の知らないところで処理された結果だけだ。少なくとも視覚では、無意識どころか網膜でもある程度の情報処理が行われている。「誰」も世界の生データを見ていない。

 もし「私」が実際には水槽の中に浮かんでいるとまではいかなかったとしても、そのミニチュア版である認識と現実のズレは、認識の至る所で生じうるだろう。我々はそんなふうにして、世界を作っているのである。


これは以前(もう3年になることに気付いて驚いた)書いた記事の一つである。内容は今も自分にとって重要なことだと感じるので、投稿日時を合わせて一緒に置いておくことにした。 特に手直しはしていない。過去に色々なところに書いたものも、まとめておいてもいいのかもしれない。

距離

 空を見上げるのが好きだ。

 物心ついた頃から空を見るが好きで、暇な時はほとんどいつも空を見ていた。小学校などは校庭で暇になることはよくある。そんなときは怒られない程度にしばしば空を見ていた。あのさっぱりした青色も好きだし、様々な表情を見せる雲も好きだ。

 今日も空を見ていた。青い空の中にふわりと浮かぶ雲を見ていたとき、ふとそこまでの距離に思い当たり、思わず足がすくんだ。単色の背景にふわりと浮かんでいる雲はこちらのスケール感を壊してくるが、あそこまで数kmから十数kmは離れている。あそこにもし人間がいたら、果たして私の目に見えるだろうか。今大きな雲から千切れた一欠片はどのくらいの大きさなのだろう。私の部屋? 大学の大講義室? グラウンドくらいか?

 縦方向の距離は感覚として掴みにくい。地上での10kmに対して、上空10000mのどれほど隔絶されていることか。ただただ空が広がるばかりであれば掴めなかったこの距離が、雲という実体が浮かぶことで手がかりを得て地上と同じ座標に引きずり込まれる。

 空は隔絶されているから空なのだ。空までの隔絶は距離ではなく、天と地の隔たりとして表されるべきものだ。地上の10kmはそこまで圧倒的な距離ではない。しかし天と地の間は、人間が走って埋められる程度の溝ではないはずだ。そこに地上と同じ距離を持ち込んでしまうことで、本来日常と切り離されていたはずの空が、自分の行動圏内のように感じられてしまう。そして天への畏怖を忘れそこに自分の尺度を当てはめようとしてしまい、足がすくむ。

 子供の頃よくやっていた遊びに、スケール感覚を失う遊びがあった。一人でする遊びである。夜寝る前、真っ暗な部屋で目を瞑って、壁に触れないようにし、廊下の明かりなどの方向性を感じさせるものを完全に排除する。そしてじっと待つ。すると、だんだんと体の感覚がおかしくなってくる。普段目で見ている時は、自分の体のそれぞれがどれくらいの長さか知っている。しかしその感覚が薄れてくる。周囲に世界はない。私は自分の体が回転しながら小さくなっていくように感じはじめ、とうとう指でつまめるサイズになったような気がしてくる。

 私はこの遊びが、怖いながらも好きだった。酩酊に近いのかもしれない、と思ったこともあったが、酒が飲める年齢になってからそうではないとわかった。あの独特の感覚をああすること以外で味わったことはない。方向や距離を感じさせる感覚入力を一切なくすことで、私の体は尺度を失う。大きさもないし、特別な向きもない。何もない。何もないからこそ、距離も方向も意味を持たない。  距離感覚や方向感覚から完全に解放されるのは、文字通り「天にも登る心地」なのかもしれない。だとしたら、それが不思議な心地よさを感じさせながらも、どこか恐ろしくて日常に帰りたくなる気持ちにはちゃんと説明がつく。  そんなことを考えながら歩く私の頭上を、轟音と共に飛行機が飛び去って行った。


201/8/1 移行