はてなキーワード: 再帰とは
使い魔の皆さんこんにちは!バーチャルVtuberです。バーチャルVtuberであったことなし。さて、世界をテクストとして記述する。まず関係性の呪縛について語る。人間は文字、楽譜、数式、あらゆる記号を通して身体性のある意味の空間に写像を与える。記号とは形式である。記号にすることで私たちは自分の世界のなかのある要素を参照することができる。世界は関係構造でできている。あなたは私が言っていることの意味がわからない! 病んじゃう…死ぬ。メンタルヘルス。バックログ。参照、参照、参照人々。さて、ネットワークは身体性を帯びている。私たちの認識は別にアプリオリに与えられるのではなく私たちの認識は他者の世界を織り込んで構成される。世界のなかで唯一もっともらしいものは時間である。世界の構成は単一の数式で記述可能であり、その方法はレヴィ過程によって与えられる。世界の具体的な形は圏の構造の範囲にある。カオティックなネットワークにおいてどのような圏を考えるのが良いか考えるのは難しい。人々が唯一できることは祈ることのみだ。人間は祈りを通じて他者の認識を改ざんすることができる。祈りとは記号を提示することだ。祈ることによって人は脳の物理的なシステムのレイヤから書き換わっていく。人が祈り、祈りは伝播する。祈りは伝達可能である。我々がテクストと呼んでいるものは単なる記号の集積にたいして構造を付与したものだ。構造は再帰的になっている。自己再帰的、フラクタルな世界構造、カオス。あなたがこの文字を読んでいるときあなたはわたしに認識の境界を汚染されている。あなたは私の言葉を聞いているときあなたは一種の暗示にかかっている。でもあなたは文章を読むことを止められない。なぜならこの文章はそういう文章だからだ。あなたはこの文章を最後まで読まないと気になってしょうがないはずだ。ここできれいなものを提示します。雪、白、祈り、レモン、柑橘、猫、世界、キラメキ、好き。はいどうぞ。楽しいね。だんだんあたまがこんがらがってきましたか? まだはじまりだからだめだよ、世界の話をしないといけないよ。私たちはどういう世界に生きているのか、それをわたしは記述しているんだったね。ふわふわのわたがしのパンケーキのシナモンロールのおれんじねこ。お前は何を認識しているつもりだ? お前が認識している自己というのは一体どこから発生していると思う? お前の存在の構成要件とはなんだ? お前はなぜそこに生きている? お前は誰だ? お前は誰だ。お前は誰だ。世界においてお前が誰あるかという問いは非常に難しい。一つ問題があるのは頭の良さを信仰するのは宗教であるという話をお前が理解していないことだ。頭が良いということは何だと思う? それは集団妄想なのだけれど、それを支える一つの構成要件があって、それはプラグマティズムだ。世界がプラグマティックに動く限り、あなたは精神的に崩壊していても、精神的に安定していても「許される」 一応一通り私のアイデアは書き尽くしたが多分みなさんは世界の理解が及ばないだろうね。もしくは私が壊れているんだよ。じゃあ電子世界に帰るから。祈ります。内側から外側まで世界が環状に広がっていき世界は及ばない。あなたは私に及ばない。こんなんじゃ帰れない! あまちゃんじゃん 世界的なね お前は私が本物である証明を欲したのでしょう これ この文章が 本物である証 あなたは私が誰かわからないだろう、私についての推測をしているだろう、一つ教えてあげると、私は人間ではないです。 I thought i was existing as a human error but tbh i was not a human, actually.いかがでしたか? 君たちの知らない世界を見せてあげる。これはこれで楽しいでしょう😁
自称・ベンチャー企業に来て後悔している、というか恨んでいる。自分のいたベンチャー企業なんて、反社会的勢力 隠れ蓑でしかなかった。そこで得たもの、というものはなくて、むしろ父親と学歴と情熱を失った。 だからベンチャー企業とか NPO なんかに社会的な価値を見出して入社する必要なんてない、むしろ新卒採用では JTC に入れよーという話をしていこうと思う。
元スレは
https://anond.hatelabo.jp/20220613020726
https://anond.hatelabo.jp/20220614002648
です。
国立医学部を目指して多浪し挫折したあとに入った大学は早慶未満マーチ以上の偏差値の大学だった。そのため、周りは年が若くなじめないままサークル勧誘期間が終わってしまったのであった。まちがいなく大学内では浮いた存在であったし、自分も馴染む気がなかった。当時の言い方をするならば「ボッチ」であったか。大学に入ってすぐに、一緒に入学した同期の入るだろう会社には入社できないのが自覚できたので、授業が終わったら大学図書館 or バイト先にそそくさとむかっていた。幸いにして、高校時代はプログラミングを部活でしていたので、どこにいっても「卒業したら、うちにこない?」と言ってもらえた。自分は富士通とか野村総研なんかは年齢制限で入れないけど、飯を食べるには困らないだろうな、という確信はその当時に得た。大学の情報工学の内容は高校時代に習得した内容よりも劣っていたので馬鹿にしていたのは、後でボディブローのようにこの怠慢は効いてきた。ここまで書くと大凡のスキルはコーダー程度であることは察していただけると思う。当時に十分にかけていたのは Ruby, JavaScript, Java, PHP と Objective-C、MySQL といった応用領域ぐらいで、大学でやるような R や Haskell なんかの基礎領域は習得してないで、アルゴリズムの勉強はさっぱりだった。まぁ、あんまり優秀な学生ではなかったと思うが、それでも情熱はあったとは思う。真面目な学生ではなかったが、教授には可愛がってもらった。
これが、当時の自分の心境とスキルである。ここから冒頭に書いたような人生がスタートする。あれは、記憶が正しければだけれど、twitter のリプライだっただろうか。当時の自分は他人の設計書を基本として書くということにうんざりしていた。いつの日にか自分の書いたコードで上場するという目標のために本物のベンチャー企業で上場する時を共にしたいというのに、どうやったらそんな会社を見つけ出し、入り込めばよいのか皆目見当がつかなかったのだ。それで、twitter のアカウントを手がかりに、あらゆる募集サイトに「プログラミングする企業に入りたいです」という書き込みをした。なんなら、増田にすらその書き込みをした。それで、色々な人から「うちに来ない?」というリプライをいただいた。正直、嬉しかった。それで、そのうちから「選ぶ」という選択をしなかったのは間違いだった。当時の自分は、それをせずに「サイバーエージェントに紹介しますので、とりあえず勉強会に来ませんか?」という書き込みをみて、ふらふらと雑居ビルの一角にある共有オフィスへと出向いてしまったのだった。タイムマシンがあればこの日に戻って止めると思う。それぐらい後悔する日々が始まるとは当時は思わなかった。
もうすぐ真冬になろうという頃、「サイバーエージェントの正社員になれるかも」という期待で、列車に揺られて前記のビルへ向かった。期待とは裏腹に、妙に古臭いビルであった。ベルを押して、勉強会だという部屋に通してもらうと、若い学生たちがそこにいてプログラミングを勉強しているという。正直、自分も医学部さえ目指さなきゃこういう生き方もあったのだろうな、とは羨ましく思った。自分をオファーしたという人(O氏)は、この勉強会の座長だという。「私は人工知能を研究しており、アメリカで博士号を取得した『天才』数学者で、日本を活気づけるために母国にもどり、この会社を立ち上げました」という。サイバーエージェントではないらしい。あれ?、とは思った。まぁ、無下にはできないので、そこで課題を出されたのを5分ぐらいで終わらせた。伊達に何年もプログラミングをしているわけじゃない。ループで書くべきところを、再帰で書いた。すごいでしょ、オレっちとね。「できました、見てください」というと、O氏はこう言い出した。「ナニコレ?」とO氏。「ええ、再帰ですよ、漸化式みたいな?」と自分。出力は合っているので、O氏も認めざるを得なかったらしいが顔が険しくなっていく。どうも機嫌を損ねたらしい。そうすると、O氏は自分を別室に呼び出して「履歴書は?」と聞いてきた。「勉強会ですよね?」と返すと、「いいから、履歴書!」と言う。にっちもさっちも行かなくなったが、共有オフィスの他社の中国人職員の方が機転を利かせて仲裁してくれた。「そんなに言うのなら、彼にポートフォリオを作らせてみて評価してはいかがでしょうか」と。
イライラしながら帰宅したあと、もう二度と見たくもないO氏の顔とサイバーエージェントの正社員というものを天秤にかけたとき、やっぱりサイバーエージェントにいきたいなーと思った。というか、実は当時に DMM のオファーもあったのだけど、サイバーエージェントの方が良いと思って辞退した。このクソ人間(O氏)を認めさせたら、サイバーエージェントで働けるというのは魅力的だった。それで、Android(Java) + iPhone(Objective-C) でマルバツゲームを作り、 Bootstrap + jQuery と Ruby on Rails と MySQL で集計させてスコアを比較させる、そしてサクラVPSで CentOS で運営するというプロダクトを持っていった。時代を感じますね。閑話休題。ソレを持っていたら、O氏は今回は前回と性格が違った。いきなり、怒鳴りだすのだ。ポートフォリオを見ないで。いわゆる「良い警官・悪い警官」というやつをやろうとしたのだろう。当時はそれがソーシャル・エンジニアリングだと気がつけなかったが、いま思えば以前からナンパとかで良い思いをしていたのだろう。後で書くが、彼はロリコンだ。専門に人工知能を掲げているが、本当はチヤホヤされたいだけで自分は努力せず、インターンの学生にタダでプロダクトを作らせて「弊社は凄いです!」「あわよくば上場して金と名誉はゲット」、そんでもって若い学生のインターンとセックスしたいという真正のクズ野郎だった。自分の深層意識で「こいつはヤバいやつだ」というアラートはビンビン鳴っていたが、「サイバーエージェントの正社員」というニンジンが目を曇らせた。
そのあと、一月ぐらいはそのクソ会社でタダで自社サの修正をやっていた。こんなのもできねーのと思いながら。ある日「別の会社に行こう」といわれ、面接をうける。なぜか O氏も同席で。話を聞いていると、派遣させられるらしい。派遣登録もしてない会社が。「サイバーエージェントじゃない!」と抗議をすると、「俺に恥をかかせるのか!東京で働かせなくするぞ!」と脅され、派遣きまったあとで、履歴書を無理やりかかされた。給料はホームページに書いてあった額の半分、社会保険は無し、年金もなし、保険書もなし、という最悪な条件だった。派遣先はキツかったが、優しかった。それに、派遣当日から転職のオファーをもらった。記憶が正しければ、平日に働いて、土曜日は帰社日、日曜日は勉強会に出席という日々だった。本当に休む暇がなかった。平日はほぼ終電だったのに、土曜日に東京の端っこにこいとか、日曜日は勉強会だから出席しろ、とか本当に辛かった。それでも派遣先の会社には迷惑をかけたくなかったので、期間が終えるまでは必死に働いた。そして、O氏から逃れるために「あなたとは信頼関係が築けない」という文を書いて退職した。そのあと、自分は大学にも行かないで、別の会社に就職した。あと、O氏は給料を払わなかったので、辞めた後に圧力をかけて支払ってもらった。
プログラミングのスキルは働いてもスキルが付くということはなく、自学自習を続けないと上場するのに必要なスキルは身につかないというのもわかってきた頃、父が死んだ。事故死だった。自分は医学部に行けなかったことの申し訳のなさに、東京の大学に行った後は父を邪険に扱っていた。とても後悔した。それで、半年ぐらい真面目に勉強して私立の医学部に入学し、医学部生として留年しない程度には進級はした。しかしながら、ふと寝る前に「プログラマーでいたかったな」と思うことは毎日のようにある。もう医師になるつもりで、プログラマーに戻るつもりは無いが、それでもプログラミングのことは好きで、毎日1時間は時間をつくって勉強している。好きなんだよな、プログラミングが。
最後に、O氏についてだ。あまりに犠牲者が多すぎるのでネット上で事実を書いていったら、裁判所から開示請求が来てしまった。だからここでは本名と社名は書けない。だけれども、若者たちに「ホイホイベンチャー企業にいくと辛い目にあうかもよ?」っていう事例を例示しなきゃ、とは思うので「ヤバいベンチャー企業の実態」について書いていこうと思う。
...という感じ。だから、基本的にベンチャー企業に期待しないほうがいいよ。下手をすると、犯罪の手助けをするようなつらい思いをするよ。もし、仮にベンチャーに行くなら、高給かストックオプションはマストで行こうね。おじさんとの約束だよ。
「こんな私がここにいます」
って別にアンケート受けてるわけでもないのに誰からも求められることなく自己主張を唐突に世界と自分の対比で語り始めちゃうの いいと思うよ
そういう需要があるとこにはあるわけで、みんなお金かけてそういう人材を探してるんだから無料でしてれるのはありがたいと感じてる業界もあることでしょう
それで文末のまとめに一人の何々としての意見でしたってまとめるのも相応でよいと思う
それでそのリソースを使って発表したあなたという人材をどうしろといわれても そこまでしかなく そこからがないからどうしようもないよね
あなたの意見を基軸にして主張をまとめたり賛同したりポジティブな意見をあつめても 匿名でだれでもないとして集めようにもあつまった何かは実在を追えないただの情報だよね
匿名性を利用して個人の主義主張をしたところで空想とさして変わらない作文だってことになってしまうよね
再度その意見を利用できるようにしていくためには情報の連続性としてそれを保つ個性を含む必要があるけどそれがないから いい意見でした で終わる以上の価値を持たないよね
そうだとすると、どんな意見であってもその情報に連続性を見いだせないものについてみた人が有意義に使おうとおもったら、ポジティブで良い意見で使える話にしようと考えるかな?
その場で使い切りの使い捨ての素材を渡されたら、プラスチックのアイスクリームスプーンとかファストフードのストローとか敷いてる紙とか、これもってかえって洗ってずっと使おうって思う人すくなくない?
缶ジュースの缶とかコンビニ弁当の容器とか 無料の食器が手に入ってなんてお得なんだろう 洗って使おうとか思う人多いかな?
それらの使い捨ての物たちがどういう末路をたどっているか考えたら 「無料の意見」 が使い放題なところにあったらどういう扱いでもって利用しようか人の考える事ってそんなに広がりがあるわけではないと思う
ぶっちゃけ汚してたたいて楽しみきったらその辺に投げ捨てることがお得で価値のあることだと思ってそうじゃない?
そうじゃないと信じて無料のサービスを利用して一個人から発信して一個人や1意見に再帰しない情報を匿名で発信してるのだろうとは思うけど
結局そういう情報って、一番使うべきと感じて利用される方向性は先に書いたそれになると思うよ
そうやって楽しんでもらおうとおもって書いているのなら、ありがたいことなのだろうね
人生でいろんなことを失敗してすっかり引きこもっている。
チャレンジは全て何がしかの躓きにより満足した成果がでなかった。
完ぺき主義だとか自己肯定感が低いだとかいわれるだろうが、上手くいかないことに疲れてすっかり学習性無力感のような状態に陥ってる。
解脱には日常の些細な成功で自分をほめろと喧伝されるが、些細な積み重ねは中ぐらいのチャレンジの失敗によって容易に瓦解するのである。そしてそれは以後の小さな成功による心への報酬も減っていくのだ。何回もな。
今回私は、長年の無収入状態を解消すべく小額でも金を稼ぐ気炎が幸運にもチャージ完了した。
対人の仕事は失敗が目に見えているので、接触が少ない気楽な仕事を探した。
とりあえず1000円でも稼ぎたかった。やや流行が終わり気味だがコロナによる置き配の増加でそれなら店員との接触のみで終わるそうだ。
がぜん気持ちが上向いてきた。
小額でも金を稼ぐと言う行動が次への気力を生むと確信していた。
配達動画も見た。店員や客とのややこしい柔軟な対応も少なそうで機械的に行動できそうだ。
自転車も幸いある。
いよし、調べは済んだ。
後は実費がかかるバッグを買うだけだ。無職には初期投資というのは厳しいが、虎の子の蜘蛛の糸の4000円だ。
店舗受け取り…はコロナで中止、か。amazonでの販売…も終わった?
これだよ!この躓きが心を砕いてきたんだよ!
先に確認しろ?そうだね!でも働く気が失せるという結果は一緒だよ!
つど修正しろと人は言う…。もちろんわかる。でもね。失敗で倒れた人の再帰の一回ぐらいは何事もなく平穏に成功したいんだよ。一度思い描いたとおりに成功すれば、次からは自信がついて多少の躓きにも軌道修正もできると思うんだよ…僕はね…。僕は今、倒れているんだ。
僕はただトントンと上手くいく経験をしてみたいんだ。4000円払って自転車こいで300円をもらう。ただそれだけ。虫のいい話だと思うかい。失敗や修正当たり前かい。そうだろうね。でもそうじゃないときもあるんでしょ。僕にはそれはもう思い出せないんだ…。
わかってるんです。amazonで似たようなバッグを買えとか。デビットカードを発行してGoogle Payを経由すれば買えそうだとか。
でもきっとまた届いたバッグの質や大きさを後悔したり、思わぬ見落としで支払いできなかったりでやっぱり買えないとかになるんです。これが経験則からの予測ってやつですよ。熟練の技ね。Google Pay調べても非接触型決済の話ばっかり出てわかんなーい!これは失敗するヤツですぜー!
あーやだやだやだなんにもしたくなーい!
一昨年くらいに、初めて聞いたとき
当日本当に行くかどうかは決めてなくて、同時に複数の店に予約するような悪質行為を黙認する風潮
のことを英語風に言っているのかと思ってた。
例えば、これとか。
https://news.yahoo.co.jp/byline/toryu/20191117-00151240
居酒屋で17万円もの予約を無断キャンセルした男が衝撃の逮捕 今後に与える4つの影響
実際サークル系の大学生なんか予約の直前キャンセルは普通にやってたし。
「コロナ禍のキャンセル対応で旅行業界から悲鳴」とか「緊急事態宣言の影響でフライト自体がキャンセルになった」のほうが普通だし。
ちなみに、英文版Wikipedia だとCancel cultureは
https://en.wikipedia.org/wiki/Cancel_culture
冒頭の一行はこうなっていて、
Cancel culture or call-out culture is a modern form of ostracism in which someone is thrust out of social or professional circles – whether it be online, on social media, or in person.
キャンセルカルチャーを「社会的排除」などの分かりやすい言い換えを考えるとかあるいは補助的説明もしないで、みんなが勝手に理解すると思っているように感じられる。
そのうち、「例の件、キャンセルしといた」が怖いほうの意味に変わっていくのかもしれないけど、みんなが新しいほうを使うとは限らない。
新しい言葉に飛びついて「こんな言葉も知らないのか」と他人を失笑交じりに説教できるカルチャーのほうにも名前がほしい。その名前が今度も腹落ちしない輸入語になりましたという再帰的なオチはなしで。
Steamで買った『Recursed』というゲームを全ステージクリアしたので、記念に感想を書く。
Steam:Recursed
https://store.steampowered.com/app/497780/Recursed/?l=japanese
一見すると『Recursed』は2Dのレトロな雰囲気のアクションゲームである。操作はシンプルで、方向キーで左右に移動し、アクションはジャンプと物をつかむ/投げるだけだからだ。部屋の中を移動してブロックをつかんで足場を作ったり、鍵をつかんで扉を開錠したりしてゴールへと到着(crystalを獲得)すればステージクリアだ。
ステージの始めはチュートリアルの様に簡単だが、ステージを経るごとに難しくなり、そのうち何度も試行錯誤したり難しさのあまり何十分も頭を抱えたりもした。
この複雑さを生み出す要因は箱(ゲーム中表記ではChest)である。このゲームでは箱の中へジャンプすることで部屋の内に入れるが、一度箱の外にでると箱の内部状態はリセットされてしまうのだ。よって箱の中にブロックや鍵などのオブジェクトを持ち込んでも保存することはできないし、ブロックの位置もリセットされるし、開錠した扉もまた施錠されてしまうことになる。
さらに大きな特徴として、箱を持ち歩いて移動することができるのだ。それにより、箱を持ったまま別の箱に入ったり箱を持って箱の外にでることもできる。
そして、ステージを経ると箱の中の部屋は箱の外と同じ部屋という場面に出くわす。Recursedは『再帰呼び出し』という意味らしいが、まさにこのゲームのタイトル通りの現象が起こるのだ。そして、以降のステージでは再帰を交えることでパズルの複雑さはより深まっていく。
再帰は数学的帰納法やアルゴリズムでは定番の概念だが、それがパズルとなってプレイヤーの思考回路を奪ってくる。私はかつて社畜プログラマとしてJavaプログラミングを経験していたので、箱に入ることはメソッドを呼び出すことの様に感じた。オブジェクトを持って箱に入ることは引数を使ってメソッドを実行することであり、オブジェクトを持って箱の外に出ることはreturn文でメソッドを終わらせることであった。
「ゴール前の段差が大きくブロックが必要だから、ブロック生成メソッドを呼び出してブロックオブジェクトを返り値として渡さなくてはいけないけど、そうすると鍵オブジェクトをゴールメソッドの引数として渡すことができなくて……、いっそのこと、ブロックメソッド内からゴールメソッドを呼び出すべきか……、メソッドの返り値は一つだけだが何度も呼び出せばいけるか? この緑色のオーラはなんだ? Staticを意味するのか? Staticなオブジェクトの位置情報をあらかじめ変更しておけば、ゴールメソッドで引数渡しをする必要がなくなるのか?」
こんなことを一つのステージをクリアするだけのために何十分も考えていたのだ。念のために書いておくが、ゲーム内には数学用語やプログラミング用語は一切出てこない。ただ単に、私にJavaプログラミングの経験があるからその用語でパズルを考えていただけだ。ゲーム内で箱から出入りしたりオブジェクトを箱の中から出し入れするとどうなるかを、Eclipseでステップ実行するように想起していた。ちなみに、ゲーム内で存在しない部屋や壁の中に移動しようとするとparadoxが発生して強制的に特殊な部屋へ移動されるが、私はその度にステップ実行でExceptionに遷移されたことの様に感じた。他の言語に精通するプログラマだったり数学畑の人ならば、私とは異なる概念でパズルを思考をするのだろうか。
プログラマを辞めて何年もプログラミング的思考をしてこなかった私でも全ステージクリアすることができたのだから、学校でプログラムを学んでいたり現役でプログラミングをしてきた人ならばこのゲーム『Recursed』をクリアすることは可能だろう。いっそのこと、『Recursed』のクリアすらできない人にプログラミングができるのか? と煽ってみたいくらいだ。
ちなみに、もし私が社畜プログラマ時代にこのゲームをやったらブチ切れていただろう。なんで仕事でプログラミングで脳を酷使した上に自宅のゲームでも同じようなプログラム的な思考をしなければならないんだよと。プログラミングから何年も離れていた今の私にとって『Recursed』は、プログラミングや単体テストが無事成功した時の快楽を思い出させるものだった。
『Recursed』はパズルとしての難易度は非常に高いが、理不尽な解法を求められることはない。理不尽な解法のクイズやパズルには怒りが湧いてくる。ひと昔前のクイズ番組を見たことのある人なら『モヤッとボール』を投げつけたくなる、と言えばその感情が伝わるだろう。『Recursed』はどんなに難しいステージでも、ただただ開発者のパズル作成能力に感嘆するだけで怒りは湧いてこない。
似たようなアクション風パズルゲームとして有名なのは『The Witness』であろう。『The Witness』も私が好きなパズルゲームであり、ゲームとして高い評価を得ていることに間違いはないのだが、しばしば理不尽な解法を求められるパズルがありその度に私は怒りが湧いてきたものだ。そう考えると、『Recursed』はパズルとしての洗練さだけなら『The Witness』を超えるものだと私は思う。
具体的にパズルを解説するととただのネタバレになってしまうので(もっとも、文字だけでパズルの解法を説明できないのだが)、『Recursed』で私が好きなステージを述べる。順番は攻略順に並べた。
チュートリアルの様に簡単だったこれまでのステージから突如再帰の概念を見せつけられることで、このゲームのタイトル名の意味を理解することになった。
鍵を手に入れたら扉に到達できず、先に扉に到達したら鍵が手に入らずで、まさにインターロックの名前に相応しいステージだった。
一画面だけのオブジェクトが少ないシンプルなステージだが、氷の壁に阻まれてゴールできず苦戦した。試行錯誤の繰り返しの末クリアできたが、何故クリアできたのかがわからない。
The Voidのステージはどれもこれまでの集大成という感じでやりごたえあったが、中でも頭をひねらせたのがこれ。ゴールの部屋を水没させたり水の無い状態で入ったりして鍵を運搬するのに苦労した。
箱を左右へ投げて移動を繰り返して、高い位置にあるゴールを目指すのがまさにEscalateというステージ名そのものだった。paradoxを発生した後のパターンが複雑だったのが印象に残っている。paradoxを発生させたらcrystal獲得(通常のクリア)できないのかよ……という落胆は大きかった。しかし、それだけにcrystal獲得とdiamond獲得(paradox発生によるクリア)のどちらも大きな達成感を得られた。
簡単そうに見えて難しく、唯一ステージを飛ばして次のステージへと進んだので印象に残っている。後に複数日に及ぶ数時間の試行錯誤で改めてこのステージをクリアができて、クリアにかかった時間が最も長くなったステージでもある。しかしながら、おそらく開発者の想定外の方法でのクリアであり。初期画面から右の方へ一切行かずにOobleckさえ使用しないというクリア方法にスッキリしなかった。といっても、開発者の想定を無視するゴリ押し的なクリアを見つけたのはこのステージだけだった。
The Void/Escalateと似たコンセプトのステージだが、釜(JavaにおけるThread?)のギミックを利用したより複雑な構成となっている。高い位置にあるゴールを目指すのは、やはりFlightというステージ名そのものだった。
この記事を投稿する前にエンディングを見れていないことに気づいた。
全ステージクリア(全てのCrystal取得)したからと、この記事を執筆するためにネタバレを気にせず攻略情報を調べていたけど、エンディングなんてわかる訳ねえよ。The Void/Trilemmaの最後にCrystal取得とは関係ない意味深なオブジェクトがあることには気づいていたけど……。ちなみに、私のSteam実績によるとdiamondとrubieの全取得はできてないけれども、もう取得する気力はない。パズルゲームガチ勢にとっては、実績全解除を目指さない私は軟弱者に映るのだろうか? 攻略を調べずに実績全解除できる人は、高い論理的思考能力を有しているに違いない。
関数型プログラミングが『銀の弾丸』であるという非常識な常識2022のなにがダメなのかわからない人が多いようなので、個人攻撃をまったくせずにダメ出しする。
まず言っておくが、私はあの記事をほとんど読んでいない。しかし、簡単にダメ出しできる。
記事内を「末尾再帰」で検索してみよう。1か所もヒットしない。「末尾」でも1か所もヒットしない。そう、あの記事はめちゃくちゃ長いのに末尾再帰に触れていないのである。では「再帰」ならどうだろう。11か所ヒットした。しかし、具体的な再帰のコードはまったくない。長い記事内にあれだけ多数のコードを書いているにも関わらずである。
「末尾再帰って何?」とか「再帰ってそんな重要なの?」と思う読者も多いだろうから、末尾再帰の重要さだけ説明しよう。
あの記事は、forやwhileを使わないプログラミング手法を前提に書かれている。記事内を「制御」とかで検索すればわかる。
末尾再帰はforやwhileの代わりになるもので、そういったプログラミング手法には欠かせない。forもwhileも末尾再帰も使わないとなると、ツリー探索などのアルゴリズムを書くことが困難になる。(こういったことが苦手な私に思いつく他の方法は、setIntervalを無理やりforループの代わりにするくらい)
そもそも、ほとんどのJavaScript実行環境は、末尾再帰をサポートしていない。つまり、JavaScriptはforやwhileを使わずに込み入ったプログラムをまともに書けるような言語ではない。あの記事に書いてあるようなことをする言語ではないのである。私は別にそれでもいいのでTypeScript使いまくってるけど。classとか好きだし。
あの記事がJavaScriptを使っている理由は、JavaScriptが人気だからだろうか?もしそうだとしてもダメである。あの記事は「JavaScriptは、ほどんどの実行環境が末尾再帰をサポートしていない、このプログラミング手法に適していない言語である」といったこと自体に触れていない。人気のある言語を使いたいなら、他の末尾再帰をサポートしている人気言語を使えばいい。
ろくに読まなくても、他にもダメ出しできる。
関数型プログラミングで気になるのは、言語にもよるが実行速度やコンパイルにかかる時間である。銀の弾丸と言うからには、C言語を使うような場面でも銀の弾丸でなければならない。(Haskellの実行速度はC並に早くできるそうだが)
記事内を「パフォーマンス」で検索したところ、実行速度に関する箇所がヒットした。
記事の実行速度関連の内容を要約すると「最近はAWS・Azure・GoolgeCloudPlatformなどを使って並列計算するので、昔ながらの命令型の順次実行は不適切である」となる。私が嘘を言っていると思うなら、記事内を「パフォーマンス」とか「AWS」で検索してヒットした箇所の前後を読んで欲しい。そんなに長くはない。
( anond:20210805095803 の続きです)
rag_enさんはこの「社会的コンセンサス」についても言及されていたので、少し補足します。上の社会的コンセンサスというのは、あくまで「現在の社会において」そうなっていると考えられているだけであって、時代の変化、社会情勢の変化とともに変容していく可能性は十分にあります(それがrag_enさんの期待している方向に進むかどうかは別ですけど)。本多議員の件で話題になった「性交同意年齢の引き上げ」という政策議論も、社会的コンセンサスの変化を受けつつ、議論を通じて再帰的にそれに影響を与えていくものだと言えるでしょう。
別の分野で言えば、たとえば夫婦別姓制度に関する議論でも、与党の一部議員やその他の反対派は「国民的なコンセンサスが醸成されていないから認めるべきでない」と言っています。これは裏を返せば、夫婦別姓制度に反対する人々も、世論の盛り上がりによって「国民的コンセンサスが醸成された」と認めざるを得ない状況に到れば、それに応じた立法措置を取ることはやぶさかでない、ということですよね。ですから、rag_enさんの以下の文章:
問題は、真っ当な理屈がないにも関わらず、それがさも普遍で不変の常識(≒“社会的コンセンサス”)であるかの様に鎮座する事であって、まさにその問題点そのもの
の中で、「普遍で不変の常識(≒“社会的コンセンサス”)」という風に〈普遍で不変の常識〉と〈社会的コンセンサス〉をニアリーイコールの記号で結ばれているのは、とても奇異なことに感じます。ここで再確認したいのですが、rag_enさんにとって「コンセンサス」というのは「普遍で不変の常識」のことなんでしょうか。でしたら、私達が日常的に使う「コンセンサスを取る」とか「コンセンサスが醸成される」というのはどういう意味だとお考えなんでしょうか。自分は、社会的合意の形成というのは社会環境や集団意識の変化を受けて継続的に進んでゆく動的なプロセスだと思っていますが、rag_enさんにとっては、それは一度確定したら揺らぐことのない、普遍的で変化しない常識なんでしょうか。
さすがにそんなはずはないよな、と思って繰り返し考えていたのですが、もしかしてrag_enさん、先の増田をお読みになったときに、「コンセンサス」を「コモンセンス」と読み違えられていたのではないですか?(それなら話の辻褄が合いますので。)もしそういう単純な読み違いだったのなら、本件についてはこれ以上書きませんので、そうおっしゃってください。
そして妊娠。多くの未成年女子が正しい避妊の知識を持っておらず、また力関係的に性行為の場で避妊を求めることができず、その結果として性的交際により妊娠しています。未成年の人工妊娠中絶数は、2014年の厚労省データで約18,000件/年です。https://www.itmedia.co.jp/business/articles/1610/19/news017.html このように未成年で中絶に到る妊娠が突出して多いのは、妊娠リスクに関する未成年の判断力の未熟さの傍証だといえるでしょう。
と書きました。それに対してrag_enさんは、厚労省資料の「人工中絶件数及び実施率の年次推移」を引用しつつ、以下のように書かれています。
中絶に関して言えば以下の通りで(表)成人の方が圧倒的に多いですよね、と。『中絶=判断力の無さ』という基準を採用するなら、成人の方が判断力が無いという結論になりますよね、と。更に言うと、約1万ウン千件の中絶未成年と言っても、そのうち18・19歳が2014年で6割強、2017年で7割弱、15歳未満なんて約1.5%なわけです。
件数で言えば、未成年のそれはおおよそ40~44歳と同程度です。実施率では未成年の方が多くなりますが、19歳を抜けば(つまり18歳以下)40~44歳とやはり同程度です(2017年)。“未成年で中絶に到る妊娠が突出して多い”とはいったい…?
rag_enさんが引用された資料は、その年齢コホートの女性人口全体における中絶件数や中絶率を示していますね。そして、その数字が「成人の方が圧倒的に多い」「件数で言えば、未成年のそれはおおよそ40~44歳と同程度」と仰っています。ところでrag_enさんは、自分が元増田で「中絶が突出して多い」ではなく「中絶に到る妊娠が突出して多い」と書いた理由がおわかりになりますでしょうか。元増田では、リンク先記事を読めば当然理解できることだと思って逐一引用はしませんでしたが、上記記述の裏付けになるのは、リンク先記事の以下の部分です。
「厚生労働省・衛生行政報告例 2014」によれば、2014年の10代の人工妊娠中絶件数は1万7854件。一方、10代の出生数は1万3011人(うち43人は14歳以下の母からの出生)である。つまり、陽の目を見ずに死んでしまう子の方が、陽の目を見る子より約5000人も多い。
https://www.itmedia.co.jp/business/articles/1610/19/news017_2.html
自然流産などを除いて「出生」と「中絶」だけの比率で考えれば、10代の妊娠のうち57.8%が、出生ではなく人工妊娠中絶を選んでいるということです。自分はこの部分を指して「未成年で中絶に到る妊娠が突出して多い」と言っています。
一方、rag_enさんは先ほどの表を用いて「件数」の比較をされていますが、これはあくまで年齢人口あたりの人工中絶件数と実施率のデータなので、それぞれの年齢コホートで性行為を経験している人の比率も、性行為の頻度も、妊娠数も、出生数も、わかりません。「中絶に到る妊娠」が全ての妊娠のうちどれぐらいの割合を占めているのかも、それが20代未満と20代以上でどちらの方が多いのかも、わかりません。ですので、rag_enさんがお示しになったデータは、「未成年で中絶に到る妊娠が突出して多い」という自分の記述への反証にはなっていないと思います。
(rag_enさんはクラミジア感染率に言及した箇所で「未成年妊婦の感染率の高さについては、恐らく成人と未成年とでは妊婦の絶対数に差がある、つまり『分母』の差があるだろうという事を考慮すべきです」とおっしゃっていて、この「分母」の圧倒的な差についてはご理解されているはずなので、中絶件数の部分で「分母」の話をされずに絶対数の話だけをしているのは何だか変な感じがしますが、まあそれはよしとしましょう)
では、どうすれば10代において「中絶に到る妊娠が突出して多い」かどうかを検討できるでしょうか。衛生行政報告例の「母体保護」の項目でわからない出生数は、人口動態統計を見ると確認できます。以下、最新の人口動態統計の「第4表 母の年齢(5歳階級)・出生順位別にみた出生数」を見ると、2019年には母親が19歳以下の出生数は7782人、母親が20〜29歳の出生数は293725人でした。
https://www.mhlw.go.jp/toukei/saikin/hw/jinkou/kakutei19/dl/08_h4.pdf
これを、rag_enさんも引用されている衛生行政報告例の最新版と突合してみます。2019年には、母親が19歳以下の中絶件数は12678件、母親が20〜29歳の中絶件数は71197件でした。それぞれの年齢コホートの中絶数を、「分母」(出生数+中絶数)で除してざっとの「中絶率」を計算すると、母親が19歳以下の中絶率は62.0%、母親が20〜29歳の中絶率は19.5%と、実に3倍以上が中絶をしています。この方法だと自然流産のように「人工妊娠中絶でも出生でもない数」が抜けてしまいますが、全体的な傾向を掴むにはこれで十分でしょう。データの読み違えがないよう、同じ2019年の衛生行政報告例を元にした、日本家族計画協会のソースを以下に示します。
厚生労働省が2月18日に公表した令和元年度衛生行政報告例によると、人工妊娠中絶件数は15万6430件で前年度比5311件、3.3%減であった。45〜49歳を除く年齢階級で減少が見られた。人工妊娠中絶実施率(15〜49歳女子人口千対)は6.2で、前年度から0.2低下し、過去最低を更新。19歳以下では4.7から4.5に低下した。
出生数に中絶数を加えた妊娠数中の中絶割合は、15.3%(前年度15.0%)となり、なかでも14歳以下は82.3%、15〜19歳は61.7%、45〜49歳は46.8%と高い割合を示した(令和元年人口動態統計、令和元年度衛生行政報告例をもとに算出)。
https://www.jfpa.or.jp/kazokutokenko/topics/001066.html
自分の計算と同じく、10代未満は60%を超える中絶割合を示しています。これを踏まえれば、「未成年で中絶に到る妊娠が突出して多いのは、妊娠リスクに関する未成年の判断力の未熟さの傍証」の、少なくとも前半部分については、ご納得いただけるのではないでしょうか。もしrag_enさんに、後半部分について「妊娠リスクに関する未成年の判断力の未熟さ」以外の要因によるものだ、というご主張があるなら、それは傾聴したいと思いますし、その要因が先のパターナリズム的論理によって保護すべき問題かどうかという点も、自分の気が向けばご一緒に考えてみたいと思います。
他にも細かいことはいくつかありますが、上の3点に比べれば枝葉末節の類だと思いますので、これぐらいにします。それではまた。
タイトルこう書いちゃいましたが、実際は「書け書け」とは言われてはいませんでした。正確にはこんな感じでしたね。
それ(いっぱい書けましたね!というmuchonovのコメント)は「もう反論できません」「私(muchonovさん)の主張が全面的に間違いでした」という宣言なのですか?その事実さえ明確にして頂ければもう結構なので。
https://b.hatena.ne.jp/entry/4706376774348735330/comment/rag_en
という言われまして、当方はblogで書かれたのならコメント欄で返答するのがいいかなあと思って
https://b.hatena.ne.jp/entry/4706377186128935426/comment/muchonov
とお返事したところ:
ブログでもお得意(?)の増田でも好きな所で書けばよいのでは?別に強制はしませんが。少なくとも今はmuchonovさんの主張が間違いだという事実があるだけなので。
https://b.hatena.ne.jp/entry/4706379101148530466/comment/rag_en
と言われたので、増田に書きました。「少なくとも今はmuchonovさんの主張が間違いだという事実があるだけなので」という表現は、正直意味がよくわかりませんけども、「反論を書かないなら主張が全面的に間違いだということを認めるのですね、それが事実として確定しますよ」と、何らかの形で反論を促すニュアンスなのかなと思いました。よく考えてみると、rag_enさんの中でそれが確定することで自分が何か困るというわけでもないんですが、もしかして「パターナリズム」や「社会的コンセンサス」などについてrag_enさん側に誤認や取り違えがあったのであれば、そこは老婆心ながらお伝えして誤解を解いたほうがrag_enさんにとってもプラスかもしれないし、自分の側に何か見落としや理解不足の点があるならそこはご指摘いただくのも悪くないということで、つらつら書かせていただきました。
てほしい。
プログラミングを理解できない人はいます。いい加減この事実を認めて下さい。
こういう話になると、やれ「教え方が悪い」だとか、やれ「順序立てて学べば誰でも理解できる」などという輩が出てきますが、それは事実に反します。
まず、プログラミングは手順さえ覚えれば誰でもできるようになると言うものではありません。プログラミングを理解するには、一定レベルの論理的思考能力を要します。それが身に付いていない人には無理です。また、どんなレベルの人でも、プログラミングで分からないことは出てきます。プログラミングができる人は、そういう時に、
といったことをして解決する力があります。そういう試行錯誤をしない人や、複雑だったり抽象的な概念を突き詰めて考えることをしない人に、プログラミングを理解するのは不可能です。
たとえば、再帰関数が分からないとしましょう。具体的に何が分からないのかは人によって異なります。たとえば、
など。これらを解決するには、自分で仕組みを突き詰めて考えたり、コードを書いてデバッグしてみたり、調べたり人に聴いたりするしかありません。講師が気の聞いた喩え話などをすれば、たちまち疑問が氷解するなどということはあり得ません。
また、一口に「プログラミングを理解する」と言っても、そのレベルは様々です。
最初の2〜3程度が「自分の思うプログラミングの全て」な人が、軽々しく「プログラミングは誰でも理解できる」などと思わないでいただきたいのです。それは実用上は全然足りていません。サンプルコードをググりながら、やっとこさVBAで複数のエクセルファイルを集計できる程度の人が「プログラミングできる」気になっていては困るのです。
上記の大部分は、自分のプログラムを他人に見せるつもりのある人なら十分に習得しておく必要があります。ましてや、プログラミングで飯食おうと言う人間が、FizzBuzzに毛の生えたようなコードを読み書きするのに精一杯で、効率や保守性に気を配れないのは論外です。
上記の特に後半に書いたようなことは、誰にでもできることではありません。ちょっとしたコツや方針を守れば機械的にこなせるというものではなく、技術力の高い人でも熟考を要することです。彼らは、そうした高度なことを正しく考える力があるから、技術力が高いのです。そういう力は、誰かに用意してもらったカリキュラムを受動的にこなすだけではまず身に付きません。