2025¶
2025-06¶
2025-06-23¶
What I have learned from 15 years of functional programming of FP 2025 - YouTube https://www.youtube.com/watch?v=GYCofVVDaok
皆さんこんにちは。 日本で開催 されるこのとてもエキサイティングな関数型プログラミングに関するカンファレンスで講演する機会をいただき、光栄に 思います。直接出席できないのが残念です。 皆さんにお会いしたいのですが、録画された講演を楽しんでいただければ幸いです。ありがとうございます。 この講演は「15年間の関数型プログラミングから学んだこと」です。 TwitterとBlueskyで@ScottWlaschinとして私をフォローできます。 また、fsharpforfunandprofit. com というウェブサイトも運営しており、そこで関数型プログラミングについて話しているほか、関数型プログラミングのチュートリアルも多数公開しています。 今回の発表ではC#とF#のコード例を紹介します。通常はF#を使うのですが、 初心者の方もいらっしゃると思うので、C#のコード例もいくつか紹介すると役立つかもしれないと思いました。 プログラミングを始めたのは随分前で、白髪になった1980年代に遡ります。 それから何年もかけて、Pascal、Smalltalk、 C、PHP、Pearl、Python、Java、Cなど、 たくさんのプログラミング言語を学びました。 プログラミングについてはかなり詳しいのですが、 ある言葉を見つけました。 それは「プログラミングに対する考え方に影響を与えない言語は知る価値がない」というものです。これはつまり、 Javaを既に知っているならCを学んでも考え方はそれほど変わりませんし、 Goを既に知っているならPythonを学んでもプログラミングに対する考え方は変わりません。 どちらも基本的に同じです。つまり、最も人気のあるプログラミング言語について考えてみると、 どれも同じ言語のバージョンです。もちろん構文などは異なりますが、 基本的なやり方、コードの整理方法、変数を使った命令型の処理方法などはほぼ同じです。 つまり、1つの言語を学んでも、 他の言語に対する考え方はほとんど変わりません。仕事には役立つかもしれませんが、考え方が変わったり、 頭が爆発したりするようなことはありません。それで、15年ほど前に何か新しいことを学びたくて、 関数型プログラミングを学び始めました。そして、驚いたことに、プログラミングのやり方が本当に 多くの点で変わりました。本当に頭が爆発するほどです。 関数型プログラミングを学んでから、 これまで使ったことのない様々なテクニックを使えるようになりました。 関数型プログラミングを学んでから、 私が学んだ多くのことの中で、これまでと違う点がいくつかあります。例えば、低レベルのコードの書き方、コードを より大きな部分にまとめる方法、コードの整理方法、ドメインモデリングの方法、 エラーの処理方法、テストの方法、高レベルの設計と アーキテクチャの作り方などです。基本的に全てが違います。 関数型プログラミングを知った今、本当に話したいのは、 オブジェクト指向プログラミングをして いた頃にはしていなかった、今では違うやり方をしている点です。 その話に入る前に、関数型プログラミング の私の定義についてお話ししたいと思います。関数型プログラミングとは何か、これはあくまで私の定義ですが、 人によって解釈は様々ですが、基本的に重要な概念が5つあると思います。 まず、関数とは文字列や整数、 ブール値を扱うのと同じように、別の何かであり、代入することができます。整数は渡したりも できます。私は線路の例えをよく使います。もう一つは 関数はルックアップテーブルのようなもので、完全に予測可能で 決定的だということです。すぐに例を挙げましょう。 小さなものから大きなものを作る方法は、 オブジェクトやクラスから作るのではなく、関数から作ることです。そのためにはコンポジションを使います。 レゴをご存知なら、同じ考え方です。小さなものを 組み合わせて大きなものを作ります。関数を使って小さなものから大きなものを作るのです。 次に、型はクラスではありません。オブジェクト指向に慣れている人は クラスの扱いに慣れています。関数型プログラミング言語の型は、 通常のクラスよりも集合に近いものです。そして最後に、 小さな型から大きな型を作るときにも同じテクニックを使います。 レゴのようにどんどん大きくしていくのです。まずは関数についてお話しましょう。 具体的な例として、小さな線路があります。 トンネルがあって、何かがトンネルに入って反対側から違う形で出てくるとします。 この場合はリンゴとして入ってきて、バナナとして出てきます。 入力はリンゴで出力はバナナです。これで問題ありません。もちろんこれはあまり一般的ではありませんが、 数を2乗する別の例を考えてみましょう。 入力は3で出力は9です。つまり、入力は整数で出力は整数です。 あるいは、リスト内のすべての数字を合計したいとします。入力は数字のリストで出力は単一の数字です。 これが私が関数について考えている方法です。これらの関数は、 先ほど言ったように独立したものです。 ええと、文字列や整数のように変数に代入したり、 リストに入れたり、パラメータとして持ったりすることができます。これらはスタンドアロンで、スタンドアロンとは 再利用可能であるという意味です。なぜなら、これらはどこにでも簡単に移動できるからです。 これらは何にも結びついていません。では、入力と出力について話しましょう。通常の関数では、 出力に文字列や整数を使用できます。 関数を関数の出力にすることもできます。つまり、入力は文字列ですが、出力は別の関数です。 これは関数型プログラミングで非常に一般的です。あるいは、出力は文字列ですが、入力は関数です。 あるいは、入力は文字列で出力は文字列ですが、 関数全体の動作を制御する別のパラメータがあり、それも別の関数である場合もあります 。 これは一種の戦略パターンのようなものです。あるいは、 入力が関数で出力も関数であるようなものも考えられます。私はこれらを関数トランスフォーマーと呼んでいます。 関数を別の種類の関数に変換するからです。関数は関数型プログラミングで非常によく使われる手法です。 ここでは出力関数、入力関数、 引数関数、そして関数トランスフォーマーを使っています。これが基本的な考え方です。 つまり、これを理解すれば関数型プログラミングも理解できます。この基本的な考え方から、非常に複雑なものも構築できます。 引数が関数トランスフォーマーである別の関数を返す関数などを作成できます。 基本的な考え方はこれだけです。 つまり、これを理解すれば関数型プログラミングについて知っておくべきことはすべて理解できます。 それでは次に進みましょう。関数はルックアップテーブルです。通常、関数は 計算を行うものと考えます。例えば、ある数を2乗したいとします。n * n または x * x と書きますが、これを文字通りルックアップテーブルとして書き直すこともできます。1を渡せば1が返され、 2を渡せば4が返され、3を渡せば9が返され、というように続きます。 関数型プログラミングの観点から見ると、これらはほぼ同じで、同等です。 もちろん、ルックアップテーブルとして書くことはありませんが、 概念的には 次のように考えることができます。 ルックアップテーブルとその副作用の1つは、すべての関数に 入力と出力があり、データが不変であることです。つまり、単に検索しているだけです。 関数型コードを書くときに、コードの書き方についてこのように考えるのに役立ちます。 つまり、ルックアップテーブルの場合、何かを検索しても何も変わりません。 入力も出力も変更されません。つまり、すべてのデータが不変です。 関数型プログラミングを始めたばかりの頃は、 すべてのデータが不変のプログラムを書くなんて不可能だと思っていましたが、実際には可能であり、 思ったほど難しくなく、しばらくすると非常に簡単になります。 可変データを使用するのは奇妙な感じがします。素晴らしいですね。では、次のアイデアです。 小さなものから大きなものを作るにはどうすればいいでしょうか?レゴのアイデアを使っています。 例えば、2つの関数があって、それらをつなげて大きな関数を作りたいとします。 どうすればいいでしょうか?簡単な答えは、1つの関数の出力を 次の関数の入力に渡す、というものです。こうやってつなげると 新しい関数ができます。2つの関数を組み合わせて新しい関数を作ります。この新しい関数は リンゴをチェリーに変えます。面白いのは、小さな関数から作られていることが分からないことです。 バナナは消えてしまいましたが、この関数は単なる別の 関数です。もしチェリーを入力とする別の関数を見つけたら、 それらをつなげて、さらに大きな関数を作ることができます。関数を組み合わせる方法はたくさんありますが、 個人的にはパイプを使ったアプローチが一番好きです。その理由を説明しましょう。 例えば、関数がいくつかあるとします。1を足して2を掛けて2乗する、 といった具合です。1を足して、それから2倍にして、それを2乗したい場合、 一般的なプログラミング言語では 各ステップを括弧で囲みますが、これは実際には複雑になりがちです。 ネストされた関数呼び出しは、深すぎると混乱を招くことがあります。私は実際にはそれを好みません。 そこで代わりに、パイプのアプローチを使用します。数値を最初の関数に渡し、 その出力を次の関数に渡します。 その出力を次の関数に渡します。これがパイプラインです。 Unixタイプのパイプを使用したことがあるなら、ここでも同じ考え方です。これは簡単に 理解できると思います。では、これがCでどのように機能するかを見てみましょう。3つの関数があり、 1を加算して2倍にして、それを2乗したい場合、 C#ではパイプと呼ばれる拡張メソッドを使用して関数を接続できます。これはC#に組み込まれていません。 C#は関数型プログラミング言語ではないからです。でも、これは本当に簡単に追加できます。 例えば、F# を実行するとします。この記号は縦棒と 山括弧で囲まれており、F# のパイプ記号です。これは非常に一般的で、ほぼすべての F# のコードで このパイプ記号がこのように使用されます。つまり、これら 3 つの処理を 1 つのステップで実行すると、 このように 3 つのステップが連続して実行されます。 特にコードが複雑になると、 何が起こっているのか理解しやすくなります。 これがパイプです 。パイプについては後ほど詳しく説明します。では、不変性を扱う場合、 何らかのパイプライン手法を使用する必要があります。パイプラインを使用する理由を説明します。 例えば、人物がいて、その人物は不変オブジェクトであるとします。 人物の名前を変更したい場合は、新しいオブジェクトを作成する必要があります。 元のオブジェクトを変更することはできません。新しいのを作る必要があります。 つまり、この人物のバージョン 2 が作成されることになります。 さらになにか変更したいとします。この人物のバージョン 4 が作成されました。 これで、この人物のさまざまなバージョンが存在することになります。 これは非常に繰り返しが多くなり、このように書くと非常に見苦しくなります。私はこのようには書きません。 見苦しすぎるからです。しかし、このように書かずにパイプラインとして書くことも可能です。 最初の関数の出力が別の人物になったので、そこにドットを入れて 次の関数を呼び出すことができます。これも人物を出力しているので、それにドットを入れて次の関数を実行できます。こうすることで、 常にこれらの個別の変数を持つ必要がなくなり、すべての関数を連結することができます。 通常、これをOOでは流れるような (Fluent) インターフェースと呼びますが、これはパイプラインとほぼ同じものです。 流れるようなインターフェースとパイプラインは、ほぼ同じ考え方です。 ただし、不変のデータを扱う場合は、これを処理する必要があります。さて、私が話したい4番目のこと 型はクラスではないということですね。クラスでなければ、それは何でしょう?この関数を取り上げて、 入力と出力を見てみましょう。この関数には有効な入力のセットがあります。 型というのは、これらのものの名前です。有効な入力は1、2、3、4、5、6、7、8、9だとしましょう。 この型をintegerと呼びましょう。セットに名前を付けるだけです。 有効な出力はすべて文字列だとしましょう。考えられるすべての文字列をstring型と呼びます。 単純なものである必要はありません。人でも構いません。考えられるすべての人を person型と呼びます。考えられるすべての果物をfruit型と呼びます。これらは単なる ものの集合で、動作はありません。単なるものの集合です。ものの集合なので、 集合には何でも入れることができます。特に関数の集合を持つ ことができます。これはfruitを入力、fruitを出力とする すべての関数の集合です。 これは fruit → fruit です。 これは fruit → fruit 関数の集合、または fruit → fruit 型の集合と呼ばれます。 関数型はすべての関数の集合であり、これは関数型プログラミングにおいて非常に重要な概念です。 ではこれらの型について説明しましょう。これらは集合なので動作はありません。 集合でできることは色々あります。和集合、共通集合、 積集合などです。まさにこれがまさに関数型プログラミング言語でこれらの型を扱う方法です。関数型プログラミング言語でこれらの型を扱う方法は、 通常、代数的型システムと呼ばれます。これは非常に 数学的な言葉なので、私はあまり好きではありません。代わりに合成型システムと呼ぶことにします。 これは、データと動作が分離されているからこそ可能なのです。オブジェクト指向では データと動作が1つにカプセル化されています。分離されているからこそ できることの一つは、and という単語を使ってそれらを合成することです。あるいは or という単語を使ってそれらを合成することができます。 どういうことか説明しましょう。例えば、 食事をモデル化するとします。 メインコース、サイドディッシュ、ドリンクなどがあるとします。 これをうまくモデル化するにはどうすればよいでしょうか。ここでは F# レコード型を使用しています。おっと、 F# レコード型は他のレコード型データ構造とまったく同じです。どの言語にも このようなものがあります。これは JSON に少し似ていますね。 「何かと何かと何か、3つのフィールドをかならず持っている」という表現はC# やどの言語にもあると思います。 ここで、他に実現したいのは選択肢です。 メインコースは何ですか? ハンバーガー、ピザ、サンドイッチの中から選択します。つまり、この 3 つのうちの 1 つです。 3 つすべてを同時に選択するわけではなく、1 つだけ選択する必要があります。つまり、これは選択肢です。F# では、これを実現するには、 このように小さな縦棒を使用します。これは F# の選択型です。技術的には、これらは直和型または判別共用体と呼ばれます。 私は選択型と呼んでいます。これらの選択肢のそれぞれに、 関連付けられたデータ があります。 例えば、ハンバーガーを選んだら、どんな種類のハンバーガーがいいですか?と尋ねます。 ハンバーガーはラージかミディアム、 ピザはペパロニかチーズなど、何でもいいです。これは列挙型のようなものです。ほとんどの言語には列挙型がありますが、 列挙型は実際には定数の集まりで、 通常は列挙型に関連付けられた追加データはありません。OO言語では、サブクラスを使うことでこれを実現できます。3つのサブクラスがあり、 各サブクラスは独自のデータを持ちます。これはOO言語でこれに相当するものです。つまり、これが私の考える関数型プログラミングです。 私が重要だと考えていることはお分かりでしょう。 では、実際にプログラミング方法がどのように変わるのでしょうか?実際の例をいくつか挙げましょう。 私のコードは6つの点で変わりました。まず、これらの関数を入力と出力として使用します。 今ではインターフェースを使用する代わりに、関数パラメータをあらゆる場所で使用しています。継承は使用せず、インターフェースもほとんど使用しません。 ほとんどの場合、関数パラメータは動作を制御するために使用します。 次に、オブジェクト指向のコンポジションではなく、パイプライン指向の コンポジションを採用しています。これらのコンポーザブル型を使ってドメインモデリングを行います。クラスはもう使いません。エラー処理も 全く異なる方法で行います。例外もnullも使いません。エラーもオブジェクトとして扱います。 もちろん、データとして扱います。テストやIOの方法も全く異なります。 これについては後で説明します。最後に、アーキテクチャのやり方も全く異なります。 関数のパラメータについてお話ししましょう。先ほど言ったように、インターフェースや 継承の代わりに使用します。関数をパラメータとして使うことができます。先ほど言ったように、 他の関数の動作を制御する関数を渡すことができます。 ここで私が何を言っているのか理解してもらうために、F#の非常に簡単な例から始めましょう。 1から10までの数字を出力するとします。1から10までの数字ごとに、その数字を出力するとします。 プログラマーとしては、これはハードコードだと言うかもしれません。 1から10まで、 なぜそんなことをするのでしょうか?1から11まで、1から12までを取得したい場合はどうなるのでしょうか? リストをハードコードするのではなく、パラメータとして渡すことになりますよね?リストを パラメータとして渡します。これでどんなリストでも動作します。リストのサイズはハードコードしていません。 これは非常に明白ですが、関数型プログラマーはアクションで同じことを行います。 リストの各項目を出力したいとします。では、なぜそれをハードコードするのでしょうか? 何か違うことをしたい場合はどうなるのでしょうか?ハードコードする代わりに、パラメータとして渡します。 ハードコードされた動作は良くありません。リストの各項目に対して実行するアクションとして渡します。 これで、この関数のより汎用的なバージョンができました。あらゆるアクション、あらゆるリストに対応します。 より汎用的になりました。動作とデータが分離され、実際にはリストを出力することはなくなりました。 これは基本的にリストを反復処理し て各項目に対してアクションを実行する、 非常に汎用的な関数です。 リストの要素なので、print list は 今のところ適切な名前ではありません。関数型プログラムでは、 ハードコーディングではなく常にパラメータを追加するように考えます。F# では、パラメータを追加するだけで 型推論が使えるので非常に簡単に実行できます。そのため、このアクションの入力と出力が 何になるかが自動的に判断されます。では、Cの例を見てみましょう。C# は少し複雑ですが、 例えばnまでのすべての数値を合計したいとします。 これはリストをループして各数値を合計します。 また、10までのすべての数値の積も計算したいとします。考え方は同じですが、リストを処理するたびに 異なる処理を行います。加算ではなく乗算です。これらは非常によく似たコードです。 重複を削除しましょう。繰り返しは避けましょう。 重複コードを削除しましょう。では、どうすればいいのでしょうか?これから行うのは、 3つの異なる部分があることです。共通コードは 両方で同じです。初期値はそれぞれ少しずつ異なります。 そして、ループを通して実行されるアクションがあります。これもそれぞれ異なります。 共通コードを取り、他の部分はパラメータ化します。 パラメータ化後、初期値をパラメータとして渡します。次にアクションをパラメータとして渡します。 コードは、初期値を設定することから始め、ループを実行し、 ループ内の各項目に対してアクションを実行する、というようになっています。これで、汎用的なものができました。 これは何にでも使えます。繰り返しますが、 これは以前のものよりもはるかに汎用的な関数です。 これは関数パラメータを渡す非常に簡単な例です。これはパラメータ化されており、これを使用します。 初期値もパラメータ化されており、これを使用します。つまり、ハードコードされた部分は ありません。 私たちの主要なコードと共通コードはここにあります。これを実行することの1つは 少し手間がかかると言うかもしれませんが、共通コードをリファクタリングすると、 それぞれのケースの違いに焦点が絞られます。この例をもう一度取り上げます。 合計を計算する場合、初期値は0で、アクションは毎回加算されます。 この例では初期値は1で、アクションは毎回乗算されます。 共通コードを取り除くことで、これら2つの違いに焦点が絞られます。 以前はループと絡み合っていて、 違いを確認するのが非常に困難でしたが、これにより違いがはるかに 明確になります。もちろん、ループ自体はそれほど難しくありませんが、それでもこれはより簡単な方法です。 パラメータ化することで、パラメータは それぞれのケースの違いに集中しやすくなります。これらのパラメータ、つまり関数型に関するもう1つの点は、 インターフェースになることです。関数型のセットを持つことができると言いましたね。 これが関数であるアクションです。これは2つの整数入力と1つの整数出力を持ちます。 これがインターフェースです。2つの整数入力と1つの整数出力を持つ任意の関数は すべて適合します。例えば、add関数があるとします。これは適合するので、渡すことができます。 また、multiply関数があるとします。これも適合するので、渡すことができます。 ここで行っていることは、インターフェースと同じような考え方です。 このパラメーターに適合する関数はすべてパラメーターとして渡すことができるため、どの関数も インターフェースと互換性があります。これとOOバージョンの違いは、 OOではインターフェースを定義し、すべてのクラスを見つけて そのインターフェースを実装していることを確認する必要があるのに対し、この方法では遡及的に すべてのものを見つけてインターフェースを実装するように強制する必要がないことです 。 関数であれば自動的に互換性が確保されます。余分な作業は不要で、 インターフェース宣言などは必要ありません。これは非常に便利です。 では、複数の関数がある場合はどうなるの でしょうか? インターフェースの中には3つか4つのメソッドを持つものもありますよね。 どうやってそれを実現すればいいのでしょうか?実は、これも同じように実現できる方法なんですが、 今は詳しく説明しません。では、これらのパラメータを使うことでプログラミングの方法がどう変わるのでしょうか? 私はできる限りすべてをパラメータ化するようにしています。以前は決してそうしませんでした。 関数をパラメータとして使い、継承の代わりにパラメータ化を使っています。そのため、 何かを継承する必要はほとんどありません。Strategyパターンのように動作をパラメータ化するだけで、 継承を全く使わずに必要なことはすべて実行できます。 また、インターフェースはほとんど使いません。通常は関数型を インターフェースとして使用します。2つ目の変更点は何でしょうか?今では、ほとんどあらゆる場面で パイプライン指向プログラミングを使用しています。もう一度おさらいすると、小さなパイプラインがあり、それらを接続できます。 これはC# 言語のバージョンです。このパイプラインを使うのは些細な変更のように思えますが、 実際にはプログラミングや設計に対する考え方が大きく変わります。 いくつか例を挙げてみましょう。まず、オブジェクト指向プログラミングでは、 リクエストが入り、そのオブジェクトが他のオブジェクトと通信し、そのオブジェクトが 他のオブジェクトと通信し、オブジェクト同士がやり取りして、 最終的に他のオブジェクトと通信し、オブジェクト同士がやり取りして、 何らかのレスポンスが返されます。これはリクエストレスポンスモデルです。ここで重要なのは、 矢印があらゆる方向に向くことです。オブジェクト同士がビジターパターンのようにやり取りすることもあります。 そのため、少し複雑になることがあります。パイプラインではすべてが一方向です。 データはパイプラインを一方向に流れるので、 理解がずっと容易になります。また、コンポーネントも理解しやすくなり、パイプラインの各部分も 理解しやすくなります。例えば、次のようなループがあるとします。 何かができて、それが何をしているのか分かりますよね?このループが何をしているのかは明らかではありません。 特に難しいことではありませんが、少し考えなければなりません。では、これと比較してみましょう。 これは明示的なループと同じコードで、これはC#のLINQを使ったコードです。 Javaを扱ったことがある方ならご存知でしょう。Javaにはストリームなどがあり、ほとんどの言語で このような機能があります。この方法の良いところは、各ステップ で何をしているのかが非常に明確であることです。 これはパイプライン指向のアプローチです。 1つの処理の後に別の処理が続き、さらに別の処理が続きます。 各ステップの動作を制御するために関数パラメータを使用して いることに注目してください。 これは、インターフェースを渡すのではなく、関数パラメータを使用するという先ほど見た方法とまったく同じです。 このアプローチの特徴は、各ステップが1つの処理をうまく行うように特別に設計されており、 それらを様々な方法で組み合わせることができることです。繰り返しますが、これはレゴの考え方と同じです。 これらの小さなピースを組み立て、やりたいことに応じてさまざまな方法で組み立てます。 オブジェクト指向プログラミングには多くの設計原則がありますが、 これらの原則の多くはパイプライン指向プログラミングにも同様に当てはまります。 例を挙げてみましょう。まず単一責任の原則から始めましょう。 「1つのことだけを行い、それをきちんと行い、あまり多くのことを行わない」ということです。 単一の関数しかない場合、これ以上の単一責任は考えられません。1つのことだけを正しく行うので、 無駄な努力をする必要もありません。この「フィルター」と呼ばれるものは 1つのことだけを行うので、テストは非常に簡単です。 特定のコード部分をテストしてから、他の選択コンポーネントをテストすると、1つのことだけを実行します。アセンブル時に個別にテストしておけば、 大きな変更を加えなくても問題なく動作すると確信できます。 それでは、次はオープンクローズド原則です。 オープンクローズド原則とは、何か新しいものを追加したい場合、既に動作しているコードには手を加えない、新しいコードを 追加しても、既に動作しているコードを壊さない、ということです。そのままにしておいてください。 触らないでください。パイプラインに新しい動作を追加したい場合、 パイプラインの最後か途中に追加するだけです。既存のコードには触りません。 拡張はしますが、変更はしません。パイプラインプログラミングでも同様に機能します。 良い例を挙げましょう。フィルターをいくつか追加したい場合、ここにいくつかのものを追加したいので、 別のフィルターを追加し、この操作を行うための新しい句を追加します。 コードの残りの部分には触っていないことに注意してください。新しい部分は 既存のコードを壊すことはありません。あまり変更していないので、これは正しく動作すると確信しています。 何かを別のものに置き換えたい場合でも、 既存のコードを壊さないので、それぞれが動作すると確信しています。 コレクションクラスやリストなどの場合、これは適切だと言うかもしれませんが、このパイプライン指向の考え方は、 他のシステムの設計について興味深い洞察を与えてくれます。 では、 ここでローマ数字への変換例を挙げましょう。 アラビア数字の整数をローマ数字に変換するにはどうすればいいでしょうか?5をVに、12をXIIに、 107をCVIIに変換するにはどうすればいいでしょうか?これは非常に単純なコーディングの問題で、 様々なアルゴリズムがありますが、ここでは ローマ人が最初に使っていたアルゴリズムを使います。1、2、3、4とスラッシュを入れ、5になったら 線を引いて、10になったら線を2本引いてXを作ります。 これが進化の過程だと思います。これがこれから使うアルゴリズムです。 まず1、2、3、4、5、6、7、8、9、10…と書いていきます。そして1、2、3、4、5…になるたびに これをVに変換し、Vが2つあるごとにXに変換し、これを繰り返していきます。 これが私のアルゴリズムです。興味深いのは、パイプラインについて考えていなかったらこのアルゴリズムは思いつかなかったということです。 多くのアルゴリズムにはループなどが含まれていますが、 これはパイプライン指向のアルゴリズムです。各ステップでは 文字列内の何かを置き換えるだけです。最初は1がいくつあっても、4つあるごとに Vに置き換えます。これらはすべてパイプラインであり、パイプラインのステップです。 では、これらの置換ステップの1つを見てみましょう。5つの1を1つのVに置き換えます。これは1つの入力と1つの出力を持つ関数です。 通常、置換関数は3つの入力を持ちます。 変更する2つの要素と元の文字列があります。しかし、今回はそうしません。 新しい種類の置換関数、つまり関数の戻り値を使用します。置換関数は 出力として関数を返します。戻り値を返すことはありません。出力として文字列を渡し、 関数を出力として返します。これが関数型プログラミングのアプローチです。 これが私のreplace関数です。2つの入力を渡します。3つではなく2つです。 そして関数を返します。文字列を返すわけではありません。これはまさに私が言っていたことです。 何かを渡すと、実際には文字列ではなく関数が出力されます。 そしてこれらをパイプラインで接続します。最初のreplace関数は入力と出力が1つずつの関数です。 次に、入力と出力が1つずつの次のreplace関数を実行します。これを繰り返していきます。 あとはこれらをパイプでつなぐだけです。これで解決策が完成です。これが関数です。 replace関数にも2つのパラメータがあります。これは文字列入力と 文字列出力の関数です。これは文字列入力と文字列出力の関数です。 これらは実際には関数を返すものではありません。これは別の考え方ですが、 これらをパイプでつなぐことで、実際にパイプを使用できるようになります。ああ、どこまで話しましたっけ? さあ、始めましょう。最初のパイプ、2番目のパイプ、 3番目のパイプ、4番目のパイプがあります。ちなみに、パイプが実際に何を 実装しているかを確認したい場合は、これがパイプの実際の実装です。かなり簡単です。 では、別の例を見てみましょう。動作を拡張するとします。 ローマ数字の1で行ったことの1つは、IIIがIVになるなどの特殊なケースを処理していないことです。 どうすればこれをうまく実行できるでしょうか?拡張機能として追加するだけです。 これらのことを実行したいとします。IIIIはIVになり、VIIIIはIXになります。 新しい動作を追加しましたが、既存のコードは変更していません。 これがパイプライン指向プログラミングのメリットの一部です。 追加や変更が可能で、途中でログ記録を追加したり、途中でデバッグを追加したり、 さまざまなことができます。 既存のコードを変更する必要がないので 、セットアップに 少し手間がかかります。 つまり、特別なヘルパー関数を書く必要がありましたが、それさえ済ませれば、 多くのメリットがあります。ご覧の通り、ループはなく、 文字通り上から下への直線的な処理なので、何が起こっているのか理解するのがはるかに簡単になります。 パイプライン指向のプログラムでは、どのように変化するのでしょうか?はい、私はこれらの小さなスタンドアロン関数、 つまりメソッドではなく関数に焦点を当てています。そして、それらをレゴのようにパイプラインに組み込めるように設計します。 レゴの使い方を知っていれば、 コンポジションとパイプラインを常に接続するために 同じ考え方がわかるでしょう。 パイプラインに組み込めるように関数を調整する必要がある場合もあります。 Replace関数は元々3つの引数を持つ関数でしたが、2つの引数を持つ、 つまり1つの入力と1つの出力を持つものに変更しました。そのため、関数を返すようになりました。 よくあるトリックとして、パイプラインに完全には収まらないものがあります。 少しだけパイプラインに合うように調整します。この場合は新しい関数を出力します。 この構成アプローチはすべてのレベルで同じです。例えば、 文字列を大文字にする低レベル関数があるとします。これは非常に非常に低レベルですが、 これらの関数を組み合わせて、例えば住所検証サービスのようなサービスを作成します。 これは入力と出力です。そして、これらのサービスをいくつかまとめて、 ユースケースやストーリーなどを実装する何かを作成します。例えば、データベースのデータを更新するなどです。 これらを組み合わせてWebアプリケーションを作成することもできます。 Webアプリケーションには入力と出力があり、リクエストが入力として、 レスポンスが出力として返されます。つまり、これは実際には関数であり、入力に基づいて、 これらのユースケースまたはストーリーのいずれかを選択して実際に実装できます。 パラメータに基づいて何らかの分岐が発生しますが、全体としては 大きな関数であるため、Webアプリケーションはこんな感じです。 入力と出力があります。明らかに、 どの関数を呼び出すかを決定するために内部で分岐が行われていますが、ここでもコンポジションを使用していることに注目してください。 継承は使用しておらず、複雑なものも使用していません。データは一方向に流れます。 複雑なアプリケーションでも、データは一方向に流れます。これは非常に便利です。そのため、 多くの小さな要素から非常に大きなものを作ることができます。次はドメインモデリングです。 先ほど、andとorを使用して小さな型から大きな型を作成すると言いましたが、 これはドメインモデリングを行う非常に便利な方法です。ドメインのモデルを構築します。 実際の例を挙げましょう。いくつかの要件があり、 支払いの受け取りをモデル化する必要があるとします。支払いは現金、PayPal、またはカードのいずれかです。 現金の場合は追加の情報は必要ありません。PayPalの場合はメールアドレスが必要です。カードの場合はカードの種類と カード番号が必要です。では、これをどのように実装するのでしょうか? オブジェクト指向プログラミングをしていた頃は、おそらくインターフェースから始めていたでしょう。そしてたくさんのサブクラスがあるので、 まずインターフェースから始めます。まずインターフェースを定義し、それからそれぞれ 抽象基底クラスを作成します。そして3つのサブクラスを作成し、そのインターフェースを実装します。 各サブクラスには、今必要な独自のデータがあります。F#では、このようにはしません。 関数型モデルでは、トップダウンではなくボトムアップで構築します。 まず、メールアドレスやカード番号などの小さな要素から始めます。非常に単純な型です。次に、 さらに単純な型を作成します。例えば、カードはVisaかMasterCardで、 カード情報はカードの種類とカード番号です。1つは「または」で、 これは何か"または"何かの選択肢です。もう1つはレコード型で、これは何か"と"何かです。 そして支払いを行います。 現金、PayPal、またはカードの3つから選択します。PayPalの場合は、メールアドレスなどの追加情報が必要です。 カードの場合は、追加情報はカード情報があり、キャッシュがあれば 追加情報は必要ありません。これは選択肢型です。選択肢型は ドメインモデリングを行う際に常にこのような選択肢に遭遇するため、 非常に便利です 。3つの異なるサブクラスを3つの異なるファイルに分けるのではなく、 すべて1か所にまとめ、コードも4行なので、何が起こっているのか理解しやすくなります。 これで 、そこで止める必要はなく、構築を続けることができます。例えば、 ある種のお金の小数点があるとします。通貨があるとします。これは3つの 異なる通貨から選択するものです。つまり、プリミティブ型があり、選択肢型があり、 さらに完全な支払いがあるとします。支払いは金額と通貨と支払い方法で構成され、レコードになります。 選択肢とレコード、ANDとORを組み合わせて完全なドメインを構築します。 モデルなので、最終的な型は多くの小さな型のために構築されます。 これがコンポジションの全体的な考え方です。小さなものから大きなものを作るというレゴの考え方です。 もう一つは、コンポーザブル型は実行可能なドキュメントとして使用できることです。 これを見せたら、私がここで何を話しているのか推測してみてください。 何をしているのか、ここで何をしているのか。カードゲームと関係があることは明らかだと思います。 F#を知らなくても、プログラミングを全く知らなくても、 カードゲームと関係があることは明らかです。ここでは、 データを表すために型を使用しています。クラブ、ダイヤ、スペードなどの選択肢がある場合もあれば、カードには マークとランクがあり、プレイヤーには名前と手札があります。 ここでは選択肢とレコードを使用していますが、アクションを表すこともできます。このカードゲームでカードを配ったり、カードを取ったりすることは、 関数型として表現できます。つまり、単なる名詞、これはデータだけではありません。 このドメイン内のアクションも表現できます。そして素晴らしいのは、 これがたくさんのファイルに散らばっているのではなく、すべて1つの画面に収まっていることです。ドメイン全体が1つの 画面に収まっています。そして、実際のビジネスロジック、ゲームの実際のルール、 シャッフルなどの複雑なアルゴリズムなどは別の場所にあります。 もちろん、すべてを1つの画面に収めることはできませんが、概念やアイデアは 1つの画面にまとめることができます。これにより、コードを見れば、 すべてを見なくても何について書かれているのかを大まかに把握できます。 これは、クラスではできない、型と関数を分離できるからです。では、プログラミングのやり方はどう変わるのでしょうか? はい、私はこのような小さな型をたくさん作って、それらをより大きな型に合成しています。 選択型や和集合型、判別共用体などを使うのが好きです。 これらはドメインモデリングで使われ、とても便利です。オブジェクト指向言語にはこのような型はありません。 私は型をドキュメントとして使うことが多いです。型を実際に表示できるからです。プログラマーではない専門家に フィードバックをもらうのはとてもいいことです。 さて、話を進める前に、これはとても大きなトピックです。実はこのことについてはたくさん講演していて、本も一冊出版しています。 ドメインモデリングについてもっと知りたい方は、私の本を読んでみてください。 次はエラー処理です。私が行ったもう一つの変更点は、nullを使わないようにし、例外もほとんど使わないようにしたことです。 それについて話しましょう。まず、私はラッパー型を使うのが好きです。ラッパー型とは メールアドレスや電話番号のようなものです。文字列は使いたくありません。 メールアドレスは文字列ではなく、文字列をラップしたものだからです。 メールアドレスと電話番号を混同したくありません。そこで、ラッパー型を使うのです。こうすることで、これらは別々のものになり、 混同されることがなくなります。IDについても同じことが言えます。 顧客IDはintをラップしたもの、注文IDはint型をラップしたものですが、 混同しないように注意しましょう。これにはいくつか利点があります。 まず、文字列では なくメールアドレスを渡していると明確に記述できる点です。 ドキュメントも充実し、 ドメインモデリングも容易になります。文字列やint型ではなく、実際に何かを表すものを使うので、 バグの発生を防ぎます。int型と文字列だけを使うと、 注文IDではなく顧客IDを渡してしまう可能性がありますが、 これらの型を使えば、型を混同することがなくなります。これは非常に優れた機能なので、 私はこれらを使うことにします。しかし、これらのラッパー型には制約がつきものです。 例えば、メールアドレスにはアットマークが必要ですが、メールアドレスにアットマークが付いていて、 一定の長さであること、あるいは何らかの規則があることをどうやって保証すればいいのでしょうか? では、どうすればそれを保証できるでしょうか?多くの人がやっている方法の一つは、 何らかの属性、つまり検証のための別の処理を用意することです。メールアドレスは文字列ですが、 この文字列に対して何らかの検証ルーチンを実行して、 メールアドレスに準拠していることを確認します。もう一つの方法は、 メールアドレスという特別な型を用意することです。メールアドレス型には何も属性がありません。 もしメールアドレス型であれば、それはメールアドレスです。最初の方法の問題点は、 検証を呼び出す必要があることです。たとえ呼び出したとしても、 誰かがメールアドレスを変更する可能性があります。メールアドレスは単なる文字列なので、後で何かに変更すると、 有効ではなくなる可能性があります。2つ目の方法の良い点は、メールアドレスは 構築時に有効であり、コンストラクターで検証されるため、一度取得すれば 有効であることが保証され、再度検証する必要はありません。もちろん、 一度検証されると不変なので、誰も変更できません。このようなものがあれば、 有効であることが保証され、不変なのでコード全体で検証し続ける必要はありません。 これは非常に便利です。では、実際に電子メール アドレスを検証する方法を見てみましょう。 コンストラクターでこれらの制約をどのように適用するのでしょうか。ここにコンストラクター関数、 またはファクトリー関数があります。文字列を渡します。アット マークが含まれていれば問題ありません。 文字列を取得してラップしますが、問題がある場合はどうなりますか。 何を返す必要がありますか。null を返す必要がありますか。例外を返す必要がありますか。いいえ、そうしません。 そうしない理由の 1 つは、入力と出力を見ると、 シグネチャに「文字列を渡せば電子メール アドレスを返します」と記載されているからです。 これは嘘です。間違った文字列を渡された場合、メール アドレスを返さないことがあります。 有効なメール アドレスを返すことができないからです。これは嘘です。例外をスローしたり、 null を返したりするのは、人々に嘘をついていることになります。そのため、そうしたくありません。代わりに何をするかというと、 メール アドレスである可能性もあれば、何か他のものが 欠落している可能性もあることをモデル化します。そのため、「メールアドレスかもしれない」と呼ばれる特殊な型を用意します。 これは有効なメール アドレスであるか、何もないかのどちらかです。これは選択型で、何かがないか、 何もないかのどちらかです。ここで選択型は、このようなものを扱うのに非常に役立ちます。 しかしもちろん、「これはメール アドレスの場合はうまくいきましたが、今度は 整数の場合、そして文字列の場合も試してみたいと思います」と言うでしょう。しばらくすると、 重複したコードがたくさんあることに気づきます。ここにはたくさんのコードがあります。どうすれば重複を取り除けるでしょうか? 答えはパラメータ化です。関数と同じように、 パラメータ化します。その方法は関数パラメータではなく型パラメータを使うことです。 これがこれから呼び出す型です。「option」と呼びます。これは選択肢です。 何かを返すか、何も返さないかのどちらかです。つまり、先ほどと同じように選択肢型ですが、 今回は文字列、整数、メールアドレスなどをハードコーディングするのではなく、 型として渡します。つまり、何かを返す場合は追加のデータがあり、何も返さない場合は追加のデータがありません。 この型パラメータは実際には関数型プログラミングに由来しています。 OO言語では一般的にジェネリクスと呼ばれますが、これは 関数型プログラミングの考え方で、オブジェクト指向言語にも取り入れられています。 ジェネリクス、つまり型パラメータのようなものです。新しいバージョンでは、 有効であれば何かを返し、有効でない場合は何も返しません。 入力と出力を見てみると、入力は文字列ですが、出力には「おそらくメールアドレスを返す」と書かれています。 これはオプションです。つまり、これを見ると、次のように文書化されていることが非常に明確です。 うまくいかないこともあるので、これが気に入っています。うまくいくときとうまくいかないときが あることが分かります。出力を見るだけで対処しなければならないことが分かります。 これははるかに良い方法です。より明確で関数型のプログラマーは このようなことをするのが好きです。では、より複雑なエラー処理の例をもう1つ挙げてみましょう。 ここでも例外は使いません。例外が発生する場合もありますが、例外を全く発生させないという意味ではありません。 ドメインエラーの場合、発生することが予想される場合は 例外をスローしないということです。ゼロ除算やnull参照エラーなどのバグの場合は、 発生するはずのないバグです。その場合は例外をスローしますが、 一般的にドメインエラーの場合は例外は使用しません。何が起こっているのかが明確に示されないためです。 では、検証ルーチンを例に見てみましょう。何かを検証すると、 成功するか失敗するかのどちらかになります。何らかの入力があるとします。名前が空白の場合はエラー、 メールアドレスが空白の場合はエラーです。それ以外は問題ありません。しかし、ここで問題となるのは、 単に動作しなかったことを知るのはあまり役に立たないことです。分かりやすい エラーメッセージはありますが、これはあまり良い選択肢ではありません。 この種の処理にはオプションはあまり適していません。そこで、別の選択肢となる型を定義します。 成功か失敗のどちらかで、エラーの場合は追加データが含まれます。オプションとは異なり、 何が間違っていたかを示します。この型は通常、結果と呼ばれます。 このコードを書き直して、メールアドレスが空白の場合、名前が空白の場合は分かりやすいエラーメッセージを表示できます。 何も返さないのではなく、 分かりやすいエラーメッセージを表示できます。 このように、この種の型を使用して、 例えば検証などを行います。これで、データをより適切に追跡できるようになります。 鉄道の例えに戻りましょう。今、ここにあるのは 分岐した鉄道です。入力があり、それが成功したり失敗したりします。 つまり、この例えでは分岐が発生しています。たくさんの小さな検証ルーチンがあるとどうなるでしょうか。 それぞれが1つの小さな処理を正しく実行します。つまり、 それぞれが成功したり失敗したりする可能性があるということです。つまり、これらはすべて 分岐しているということです。これらの検証はすべて分岐しているようなものです。これは問題ありません。 しかし、これらを相互に接続する能力が失われてしまったため、パイプラインは使用できなくなりました。 2つの出力と1つの入力しかないため、パイプラインに適合しないからです。この問題をどうやって解決するのでしょうか? 先ほどと同じトリックを使って、パイプラインに適合するように何かを変換します。 このように単純に構成してもうまくいきません。先ほど関数トランスフォーマーについて話しましたが、 関数トランスフォーマーとは、入力が関数で出力が異なる 種類の関数であるものです。これは非常に一般的なものです。関数型プログラミングのトリックです。 ここでお話しするのはbindまたはflat mapと呼ばれるものです。 これは実行方法によって名前が異なりますが、最も一般的な名前はbindとflat mapです。 これは、分岐関数の1つをこのように2路線関数に変換します。 この関数変換ツールができたら、 最初の関数を2路線関数に変換できます。そして、この関数を変換できます。 変換したら、これらを接続できます。これで完全に接続できます。 これらの関数変換ツールは、関数型プログラミングで非常に一般的なテクニックです。 これは実際にコード result.bind で示されているものです。 余分なコードを追加することなく、実行するだけです。 これらの関数をそれぞれ別の関数に変換し、小さなヘルパー関数を使用するだけです。さて、もう一つ興味深い点があります。 これが新しく作った大きなものです。例えば「validate input」という名前をつけると、 これは入力が1つで出力が2つあります。他のものと同じように、 前と同じ形になっていますね。同じ考え方を再び使えます。 例えば、入力を検証してデータベースを更新するとします。エラーが発生するかもしれません。 メールを送信するとエラーが発生する可能性があります。ここでも同じ問題があります。これらをどうやって接続するか。 同じパターンを再び使用することで、これらをすべて接続できます。ここでも、 小さなレベルでのコンポジションと大きなレベルでのコンポジションを使用して、 これらをすべて接続してパイプラインを構築します。私はこれを鉄道指向プログラミングと呼んでいます。鉄道のアナロジーが好きなので。 これは関数型言語でエラー処理を行う非常に標準的な方法です。 では、プログラミング方法がどのように変わるのでしょうか?関数の出力を明示的にしています。 nullや例外は処理しません。 メールアドレスなどの特別な型を用意することで、 型レベルで制約を実装しています 。 個別の検証コードは不要になりました。 今はコンストラクタで実行しています。また、特別な関数トランスフォーマーを使って 関数をパイプラインに適合させています。今テストしています。テストが変わりました。 テストのやり方を変えました。まず、このルックアップテーブルのアナロジーは、すべての関数には 入力と出力があることを意味します。つまり、入力も出力もない関数は悪い関数です。 ここで本当に悪いコードの例を挙げましょう。関数を使う代わりに、 2乗するクラスがあるとします。入力を設定します。出力はありません。 そして実際に2乗演算を行います。この演算には入力も出力もありません。 そして結果を取得します。この結果には出力がありますが、入力はありません。 これは、数値を2乗するような単純な処理を実行するのに非常に悪い方法です。 こんなひどいコードを書く人は誰もいないでしょう。 では、実際に書く可能性のあるコードをお見せしましょう。これは顧客クラスです。名前を設定するメソッドには出力がありません。 メールを設定するメソッドも出力がありません。 データをJSONに変換するメソッドは出力はありますが入力はありません。そして、レコード全体をデータベースに保存するメソッドは 入力も出力もありません。このようなコードは実際にはかなり一般的です。多くの人がこのようなコードを書いたことがあると思いますが、 関数型プログラマーとして私はこのコードが非常に醜いと感じています。 私はこのようなコードは書きません。なぜなら、このようなコードはどのようにテストするのでしょうか。 このメソッドをどのようにテストするのでしょうか。出力がないのでテストが非常に難しいです。 動作しているかどうかを確認できません。これは魔法の変数です。 舞台裏で見えない可変変数のようなものがあるため、テストが難しく、リファクタリングも難しいです。 これを別のメソッドとして抽出するにはどうしたらいいでしょうか。非常に難しいので、私はこれが好きではありません。 代わりに、すべての関数に入力と出力があることを確認します。 そのため、名前を設定する関数は、入力に顧客を受け取り、出力に顧客を返します。 メールアドレスを設定する関数も別にあり、JSONをつくる関数も別にあります。最後の関数はDBへの保存ですが、 出力はまだvoidです。ちょっとおかしいですね。これは面倒ですが、最初の3つの関数は テストが容易になりました。何かを渡して出力を取得できるので、 動作していることが確認できます。また、不変なので、パイプライン処理も実行できます。 名前とメールアドレスを設定して、それをすべてパイプラインでJSONに変換できます。 これは非常に便利です。これらはテストが容易です。最後の関数は出力がないのでテストが困難です。 このような関数は好きではありません。これから何をするかというと、関数型プログラミングでは このようなコードは書きません。少なくともメインのビジネスロジックでは書きません。 非決定的な関数は避けます。非決定的な関数とは、入力から出力が予測できない関数です。 同じことを2度行うことはありません。 決定的な関数とは、特定の入力を与えると常に同じ出力を返す関数です。 3を渡せば常に9が返されます。これは完全に予測可能ですが、 非決定的なもの、例えば乱数ジェネレーターのようなものは、何も渡さずに乱数を返します。 何も渡さずに日付と時刻を返します。これらの関数は入力がないのに 魔法のように結果を生成します。ですから、私はこういった関数が好きではありません。 ファイルに何かを書き込む、データベースに何かを書き込む、といった関数は出力がなく、テストが非常に難しいです。 非常に予測不可能です。ですから、私はこういった関数をコードに含めないようにしています。 もちろん、どこかの時点で必要になります。時間を取得したり、 データベースに書き込んだりする必要があるので、必要になりますが、 私はコードのコアには含めず、コードの外側に含めています。できるだけこれらを避けています。 可能であれば、私はこのようにコードを設計します。ビジネスロジックを中央に配置し、 この部分は完全に予測可能で決定的です。 予測不可能な部分は外側に配置します。こうすることでテストがはるかに簡単になります。 適切に設計されたパイプラインでは、すべてのIOが中央ではなく端に配置されます。 パイプラインがあれば、これを強制するのはかなり簡単です。なぜなら、中央に何も存在しないからです。 オブジェクト指向モデルでは、物事がやり取りするので、 顧客クラスの真ん中にIOを配置するのは非常に簡単です。しかし、パイプラインモデルでは、 IOを実行する関数を分離しておくだけです。多くのビジネスモデルは、 データをロードしてロジックを実行し、データを保存するというようなものです。 そのため、一般的なビジネスフローのワークフローをこのモデルに組み込むのはそれほど難しくありません。 そして本当に素晴らしいのは、このようにすることで、ユニットテストが非常に簡単になるということです。 中間部分が単体テストで、全体は統合テストです。 ユニットテストと統合テストの違いが気になるなら、こういうことです。 ユニットテストは完全に決定的で、I/Oがないので非常に高速で予測しやすいので、 非常に便利です。これは優れた方法です。もちろん、 ビジネスロジックの途中でIOが必要に なる場合もありますが、基本的には それらを分離しておくことが重要です。複数のステップがあるかもしれませんが、各ステップはIOかビジネスロジックのいずれかです。 これらを混在させず、分離しておくことが重要 です。 関数型プログラミングを行うので、すべての関数に入力と出力があることを確認し、 コアとなるビジネスロジック が決定的であることを確認します。そして、これらがユニットテストの対象となるものです。 決定的な関数をテストします。そして、非決定的または予測不可能なものは エッジに留め、テストが必要な場合は統合テストを使用します。 最後にアーキテクチャについてお話ししましょう。関数型コア・命令型シェルと呼ばれる概念があります。 ゲイリー・バーナーハードが提唱したもので、決定的で純粋なものを真ん中に置き、 その外側にあるものを不純なものにするという考えです。 これは関数型プログラミングに非常に有効です。ビジネスロジックを真ん中に置き、 データベースやファイルシステム、ネットワークなどに関わるものは外側にあります。これは私が ドメイン中心アーキテクチャと呼んでいるもので、ドメインロジックとビジネスロジックが真ん中にあり、それ以外は すべて外側にあります。これはデータベース中心アーキテクチャや、 データベースが混在する垂直スライスアーキテクチャとは異なります。これは純粋で真ん中にあるのは 純粋なビジネスロジックで、データベースはどこにも存在しません。 パイプラインモデルでは、これは非常によく適合します。IOをエッジで直接実行し、次にビジネスロジックを実行し、 さらにIOを実行します。これはドメインを実行するというこのアプローチ全体に非常に適合しています。 センターアーキテクチャはパイプライン指向プログラミングとIOをコードの端に置くことに非常によく適合します。 最後にまとめとして、私のコードが大きく変わった点をすべて見ていきましょう。 低レベルコードでは、以前は可変変数を書いていました。 以前は暗黙の変数入力や隠されたフィールドを気にしていませんでしたし、コードを決定的にすることもあまり考えていませんでした。 コードの中で IOとビジネスロジックを常に完全に混同していましたが、 今ではどこでも不変変数を使っています。そして、すべてを明示的にするようにしています。 エラーは明示的に記述します。コアコードは決定的に記述するようにしています。 そのため、非常に予測可能で、IOをビジネスロジックから切り離すようにしています。これが私が 低レベルの処理を行っている方法です。コードをより大きな部分にまとめる際、先ほど言ったように、以前はクラスを使っていましたが、 クラス同士の相性をあまり考慮していませんでした。 SOLIDのようなものを使おうとしましたが、かなり失敗することがわかりました。単一責任原則をご存知でしょう。 クラスに要素が多すぎるとか、インターフェースに要素が多すぎるとか、そういうことを試してみたんですが、 あまりうまくいきませんでした。でも今は関数に焦点を絞って、 小さなピースを組み合わせて設計すると、単一責任のようなSOLID原則の多くは、 小さな関数では自然と満たされます。パイプライン指向のものを使うと 動作の拡張などがずっと簡単になるので、SOLID原則は素晴らしいのですが、 面白いことに関数型プログラミングではさらにうまくいきます。レゴモデルは素晴らしいです。 私たちはレゴモデルをやろうとしています。一般的にコンポーネントのサイズを小さくするなどですが、 小さな関数の場合は、この方法で実現できるんです。コードの整理方法についてですが、 もちろんオブジェクト指向プログラミングをしていた時はクラスでコードを整理していましたが、 メソッドがどこに属すべきか、このクラスに属するべきか、 あるいは両方に属するべきかなど、悩まされることもあり、 すぐに行き詰まってしまいます。それに、クラスが非常に大きくなると、 メソッドを抽出して配置しなけれ ばならなくなります。 別のクラスなどに配置するのは面倒ですが、今はそうしません。 モジュール、つまり関数のセットを使っています。関数と型は分離されています。 関数はスタンドアロンなので、気が変わって「この関数は ここに配置する必要がある」と言った場合、単にそちらに移動するだけです。メソッドを抽出したりする必要はありません。 関数はスタンドアロンなので、コード内のどこにでも配置できます。例えば、 JSONを作成するコードは、顧客に配置する必要がなければ、 JSONを使用するユーティリティモジュールやJSONモジュール、エクスポートモジュールなどに配置できます。 誰が知っているでしょうか。簡単に移動できます。エラー処理は異なります。以前は 例外を使用していました。以前はどこにでもnullがありましたが、今はエラーを値として扱います。エラーが発生した場合は、 単に例外をスローするのではなく、関数から実際に値を返します。 今ではコード内のどこにもnullはありません。これらの選択型は、ドメインモデリングだけでなく、エラーをモデル化するのに便利です。 何かが起こった、これやこれやこれが発生した、などです。テストはどうでしょうか。 以前 はクラスレベルでテストしていて、IOとビジネスロジックを 混在させても全く問題ありませんでした。そのため、依存関係をモックするために多くのモックを使用する必要がありました。 しかし今はクラスではなくパイプラインをテストしています。ビジネスロジック、特定のユースケースやストーリーは パイプラインであり、入力と出力をテストします。これは決定的であるため テストが非常に簡単です。コアコードにはIOがないため、もうモックを使用する必要はありません。 つまり、単体テストは行いません。単体テストにデータベースに関係するものを含めようともしません。 つまり、必要に応じて統合テストは行いますが、単体テストは データベースとは関係がないため、何もモックする必要はありません。最後に高レベルの設計ですが、 以前はクラスや、サービスなどの実装するためのクラスのコレクションを使用していました。 ユーザーストーリーですが、もう使わなくなりました。パイプラインを使っています。 以前は 水平階層型アーキテクチャか垂直スライス型アーキテクチャを使っていましたが、 今はパイプラインを使っています。各ユーザーストーリーは最初から最後までパイプラインであり、 それを実装し、テストし、アーキテクチャに組み込んでいます。 つまり、私のアーキテクチャ、つまり高レベルのものは、これらのものをまとめてまとめただけのもので、 ドメイン中心のアーキテクチャです。ビジネスは明らかに中央にあり、 IOは外側にあります。これが私の現在の設計方法です。これが15年間の関数型プログラミングから学んだことであり、 私が知っていることのすべてです。 もちろん、これ以外にも多くのことがありますが、これはかなり多くのことをカバーしたと思います。 この内容が役に立ったと願っています。もし興味を持っていただけたら嬉しいです。このテーマについてはたくさん講演しています。 パブリック指向プログラミング、コンポジション 、レールウェイプログラミングに関する講演があります 。 それらについては調べていただければと思いますが、それ以外は 聞いていただきありがとうございました。残りのセッションも楽しんでいただければ幸いです。ありがとうございました。
2025-06-22 LGBTPZNとは¶
「LGBTPZN」という表現は、LGBTをPZN(ペドフィリア、ズーフィリア、ネクロフィリア)といった絶対悪反社会的不可触激ヤバ賤民セクシャリティと同カテゴリに置くことで、LGBTを貶める文脈で使われるジョークです。しかし、実際にペドフィリアを非難するポストに対して同性愛を絡めたレスが付けられ、LGBT当事者が全身の血管をブチ切れされて反論し国内外でレスバが巻き起こっています。その際にLGBT側が展開する反論は主に3つのパターンに分類されますが、それぞれに矛盾や曖昧さを含むため議論が滅茶苦茶に混乱することが多いです。 そもそもPZN側は、LGBTの権利擁護の流れに便乗し「我々にも人権をよこせ同性婚の次は動物婚だ俺はこのゴールデンレトリバー(2歳6ヶ月)と結婚するぞうおおお動物性愛万歳獣姦最高!!1」と積極的に主張しているわけではありません。むしろ社会の石の下のジメジメした腐植土の中でひっそりクネクネしているだけに過ぎず、差別主義者によって意図せず議論のリングに引きずり出され望まぬ異種格闘技戦を強いられています。 この構図はPZN側にとっても不本意であり、議論の前提自体が歪んでいます。組織の策謀によりかつての旧友と闘技場で死闘を繰り広げる事になる展開は燃えますが、LGBTとPZNは基本仲が悪いので憎しみしか生みません。 それでも、この状況を機に、LGBT側が提示する反論のパターンを冷静に検討してみたいと思います。
1.「合意形成論」 「LGBTは性愛対象と合意が可能。PZNは合意が不可能。故にLGBTとPZNは全く別物。」 一見、筋が通っています。特にペドフィリア(P)に対しては有効です。現代先進国では、未成年(特に幼児)に性的同意能力はないとされ、法的・倫理的に明確な線引きが存在しています。幼児の性器いじりを誤認して「この子…まさか“性行為“を望んでいる!!!?」と解釈する人は、即座に座敷牢に隔離して脳に10万ボルト流したほうが良い。この点で、LGBTとペドフィリアの同一視は簡単に退けられます。 しかし、ズーフィリア(Z)とネクロフィリア(N)にこの論を適用すると、話が一気にぐにゃります。
ズーフィリア(Z) 「動物に同意能力はない」と一括りにするのは簡単ですが、まず主語がクソデカすぎて問題があります。イソギンチャクとイルカ、犬とクラゲの認知能力を同じテーブルで論じるのは無理があります。特にズーフィリアは、犬がパートナーとして選ぶケースが多い(海外のズーフィリア関連フォーラムに長年いた俺の知見です)為、犬を例に挙げましょう。犬は吠える、唸る、噛む、尾を振るなどのボディランゲージで好悪を示し、場合によっては飼い主を「誘う」行動も報告されています(ズーフィリアの主張ですけど)。「いやそれは人間の勝手な解釈で犬のホントの気持ちは性行為なんて望んでなくて」と反論したくなる気持ちはわかりますが、そもそも「合意能力」とは何かを厳密に定義しないと議論は空中戦になります。 さらに、「動物の合意」を問うなら、飼育、去勢、屠殺、実験などで人間が動物に一方的な行為をする際、いちいち動物に契約書と同意書書かせて合意を得ているのかよという根本的な矛盾も浮上します。フライドチキン食べる時にブロイラーの同意書に目を通してから噛りますか? 動物の認知能力や同意の可能性、異種族間の同意の定義を真剣に検討し始めると、種ごとの知能差や行動特性を精査する必要が出てきますが、残念ながら「人間に性行為を誘われた際の動物の性的同意能力」を検証する反倫理的な科学的データなんてものは存在せず、今後も研究される見込みは未来永劫ゼロです。つまり、永遠にブラックボックスです。ブラックボックス故に「ある」とも「ない」とも断じれません。
ネクロフィリア(N) ここではさらに話がややこしくなります。死体は「生命体」ではなく「物体」なので、同意能力の有無という次元自体が適用不能。ペットボトルや電柱に同意能力を問います?コーラ飲む時にペットボトルキャップに同意得てから外しますか? 仮に死体を生前の本人の「所有物」と見なすなら、「生前に同意を得ておけば倫理的ネクロフィリアが可能」という話になりますが、LGBT側の反論者はそんなケースを想定していません。そもそもネクロフィリアは「LGBTPZN」ミームで嫌悪感を煽るために激やばパラフィリアから雑に選ばれた感が強く、実際のネクロフィリア擁護団体や組織的な主張はほぼ存在しません。しかし、もし仮に「生前の契約に基づく合法倫理的ネクロフィリア」を主張する倫理的絶対正義団体が現れたら、LGBT側はそれの受け入れを余儀なくされ、新たに「LGBTN」として生まれ変わることになります。ならねえよ。
「合意形成論」は、LGBTがペドフィリアと絶対に同一視されたくない文脈で生まれたペドフィリア特化型反論です。特にペドフィリアに対しては強力な反面、ズーフィリアやネクロフィリアに適用すると論理が破綻します。これは、LGBT側がペドフィリアとの距離を明確にする歴史的背景(例:1980年代にNAMBLAをLGBT運動から切り離した経緯)とも関係しています。
結局この論はPZN全体を一括りに論じるには雑なフレーミングであり、限定的な効果しか持ちません。それでも、ペドフィリアとの同一視を避けたい気持ちは理解できるし、議論の出発点としては悪くない。ただZとNまで巻き込むと話がグチャグチャになるだけです。
2.「性指向/性嗜好 論」 「LGBTは性指向(sexual orientation)だが、PZNは性嗜好(sexual preference/paraphilia)。前者は性的アイデンティティの中核、後者は単なる嗜好に過ぎない。だからLGBTとPZNは根本的に別物。」
この反論は性指向と性嗜好の違いに着目したもので、言葉の響きが似ているだけに(なんと日本語だと《しこう》が同音!美しい!)すっきり分けたように見えて極めて芸術点が高い。一瞬「なるほど!」と思わされますが、深掘りすると矛盾と曖昧さが浮き彫りになります。
まず、歴史的背景。LGBT、特に同性愛は過去に「精神疾患」とされ、1973年に米国精神医学会がDSM-IIから除外するまで、非人道的な矯正治療(電気ショック療法や化学的去勢)が世界的に試みられました。結果、矯正はほぼ効果を上げず、被験者の自殺や精神崩壊を招いた歴史があります(アラン・チューリングのケース等)。この「矯正不能性」が、LGBTを「性的アイデンティティ」として確立する根拠となりました。
問題は、PZN(ペドフィリア、ズーフィリア、ネクロフィリア)も同様に「矯正不能」な点です。ペドフィリアに対する矯正治療も歴史的に試みられましたが、成功例はほぼなく、せいぜい「抑圧されたペドフィリア」が残るだけ。性指向も性嗜好も、変わることはあっても「消失」することはほぼありません。ヘテロがバイになる、ゲイがズーフィリアになるケースはあっても、「性的指向/嗜好が消失する」例は皆無です。極端な話、ペドフィリアを去勢しても「去勢されたペドフィリア」、ズーフィリアをロボトミーしても「ロボトミーされたズーフィリア」が爆誕するだけです。同性愛への矯正で「人格が荒廃した同性愛者」は生まれても、「同性愛が消失して異性愛者になった人」は生まれなかったのと同じです。
つまり、「矯正不能な性」という本質では、LGBTとPZNに大きな差はありません。「性指向vs性嗜好」という言葉の使い分けは、論理的な区別というより、LGBTがPZNを切り離すための政治的フレーミングです。言葉遊びの巧妙さ故に芸術ポイントが高い反面、科学的・歴史的には両者を分ける根拠は薄弱です。LGBTがPZNとの差別化をはかるための巧みな話術に過ぎず、結局は「ペドフィリアと一緒にされたくない」という動機が透けて見えます。いや気持ちはわかるんですけど。わかるけど。せやかて。
3.「社会常識論」 「LGBTは現代社会で不道徳と見なされなくなったが、PZNは反社会的で悪。故にLGBTとPZNは全く別物。」
この反論は令和現代の「社会常識」を基準にLGBTを肯定しPZNを否定するもので、一見するとスッキリ理路整然。多くの人が「そりゃそうだわ」と納得します。しかし、これをグローバルな視点で考えると矛盾が生じます。
例えば、イエメンやサウジアラビアのような同性愛が死刑に値するイスラム圏では、LGBTこそ「反社会的で死に値する悪」とされ、逆に児童婚が宗教的・文化的価値観で容認されます。この論を振りかざす人は、イエメンに対して「あなたの国では同性愛は悪、児童婚はOKなんだね!!」と賛同しない限り論理が破綻します。国やコミュニティの社会規範を絶対視するならば、上記の国々の社会規範も尊重する必要があるからです。しかし、「それらの国の価値観を尊重すべきだ」と言い出せば、LGBTを擁護する立場自体が反倫理的になってしまいます。
では、「いやその国の価値観は間違ってる! 欧米や日本の常識こそ正しい!」と文化帝国主義みたいな事を言い返したら? 自分たちの「常識」を普遍的絶対善と決めつけ、他国の文化や宗教を否定する態度。これはLGBT運動が「欧米キリスト教的価値観に抑圧された」と批判してきた構図とそっくりで、自己矛盾に陥ります。 結局、「社会常識」を基準にするこの論は、どこの常識を採用するかで話がガラッと変わる脆さがある。歴史的にも「常識」はコロコロ変わります。ほんの数十年前、1980年代まで同性愛は多くの国で犯罪でした。要するに「社会悪」です。LGBTが「道徳的」とされるようになったのは解放運動の積み重ねがあってのようやく最近の話。逆に、ペドフィリアやズーフィリアは今は「反社会的」とされるけど、歴史的には扱いが揺れた例もあります。現にドイツには動物性愛者団体ZETAが存在しますし、PZNを「絶対悪」と断じるのも現代の「常識」に依存してるだけで、普遍的な基準になり得ません。
要するに、「社会常識」を絶対視するこの反論は、現代の先進国(特に欧米)の価値観では一見説得力がありますが、社会規範が国や地域や時代でガラッと変わる弱点を抱えています。LGBTが「常識」になったのだってほんの数十年で変わった話。PZNを「悪」と断じるのも、今の「常識」に依存してるだけ。結局、この論は地域や時代に縛られており、LGBTとPZNを分ける根拠としては脆弱性があります。
こんな具合で政治的フレーミングに沿ったLGBTのPZNとの差別化は詰めるとボロが出ます。まぁ反社会性のない健全なつよつよセクシャリティとしてグイグイ躍動進出していく中で、陰キャPZNと同一視でもされたら一撃即死モノなのでこの手の理論武装には個人的に理解がありますが、そもそもLGBTとPZNが戦わさせられている現状自体が歯がゆいものです。
性によって差別されない世界の実現は大変難しい。俺はズーフィリアとしてペドフィリアに対し被差別仲間として一定の理解があり、児童婚の実現や児童との性交渉などは論外としても、その性を無害な形で解消する事で当人も隣人も迷惑を被らない事を望んでいます。とは言え、ズーフィリアもよくペドフィリアと同一視されることがあり、その度にズーフィリアらも「いや、小児性愛者と一緒にすんなよアイツらは異常者だけど俺らは動物を尊重してるから。私のは《純愛》、あいつらは《パラフィリア》」と反論することが多々あります。人間って不思議ですね。そんなんだから戦争は無くならない訳ですね。
2025-06-19 音楽理論, SoundQuest¶
2025-06-15 「お金とは重み付き有向グラフ, 金融取引はグラフホモロジーの1-cycle」¶
もともと物理学徒アカウントなところ、最近経済にキレてばかりで恐縮なのだが、実際金融経済の話については理系の人にこそ真面目に追ってみてほしいと思っており、「お金とは重み付き有向グラフですよ、金融取引はグラフホモロジーの1-cycleですよ」という話を以前書いた 信用貨幣について
2025-06-07 NotebookLM PROにしたら、機械工学便覧の約6000ページにも及ぶすべての資料が一つのnotebookに収まった¶
NotebookLM PROにしたら、機械工学便覧の約6000ページにも及ぶすべての資料が一つのnotebookに収まった。あの情報量の中を瞬時に検索して文章を生成できるとは・・・"AI機械工学博士"の爆誕よ!! 実務はもちろん、記事の執筆、番組作り、あらゆる試験の対策まで使える。これは尋常じゃない!
2025-06-05 伏屋 雄紀, 日本語からはじめる科学・技術英文の書き方¶
日本物理学会誌は宝の山。これ読みたい。 伏屋 雄紀, 日本語からはじめる科学・技術英文の書き方 「削除しても文意の変わらない語句は全て冗長」。誇張語の使用は「野心に満ちた若い科学・技術者が初めて成功を経験した場合に使いやすい表現」。SNSは悪文であふれている。その倍は良文をよむべし。
2025-05¶
2025-05-31 君たちが両親を退屈でつまらない人間だと思うなら、その犯人は君たちだ¶
昔ビル・ゲイツが高校生と語らう集会にゲストで呼ばれた時のこと。開口一番「自分の両親はつまらない人間だと思ってる人?」と学生たちに聞いた。陪席していた先生たちはハラハラしただろう。ゲイツはロックミュージシャンみたく大人批判でも始めるつもりか?
しかしそこからゲイツは意外なことを言った。「もし両親を退屈な人間だと思うなら、それは君たちのせいだ。ご両親は君たちを育てるためにほとんどの時間を費やしている。ご飯を作り、洗濯をし、掃除をし、何より仕事をしている。今も下げたくもない頭を他人に下げているだろう。」
「そんな風に他人のために時間を使っていれば退屈な人間にもなる。自分磨き? 何それってなもんだろう。だから、君たちが両親を退屈でつまらない人間だと思うなら、その犯人は君たちだ。」 ゲイツは淡々とそんなことを述べていた。今週ジークアクスを一気見して久しぶりにこの言葉を思い出した。
2025-05-23 菊池良和 (著) 吃音ドクターが教える「なおしたい」吃音との向き合い方: 初診時の悩みから導く合理的配慮 2024/4/11¶
昨年、「なおしたい」吃音との向き合い方、という本を学苑社から出版しています。 「なおしたい」という言葉の裏側とその対応を知れる本で、おすすめです!
https://amzn.asia/d/6MIptIp
2025-05-23 教科書購入は広島教販が通販にも対応しているのでおすすめ¶
検定教科書は問題はあっても回答がないので学習には使えないですね。Amazonに出品しているのは転売屋なので価格が上乗せされています。 教科書購入は広島教販が通販にも対応しているのでおすすめです。 https://hirokyou.jp/?mode=cate&cbid=1465413&csid=38
2025-05-23 Scaligerはラテン語の汚い罵倒語が豊富に学べて非常に楽しい¶
Scaligerはラテン語の汚い罵倒語が豊富に学べて非常に楽しいのでおすすめ
2025-05-23 fri テイルズオブジアビス 日記朗読会スレ¶
https://mataomaekayo.blog.jp/archives/2328318.html
これはかの有名な日記朗読会スレ
2025-05-20 世界最長の家系図を持つとしてギネスにも記録される孔子一族¶
世界最長の家系図を持つとしてギネスにも記録される孔子一族。
彼らにも「三種の神器」と呼べるような宝物があり、その中でも「孔子及亓官夫人楷木像」は孔子の愛弟子、子貢が亡き師を偲ぶために手掘りしたと伝わる。
靖康の変では、当主はこれと他2つの宝物だけを持って金軍から逃れたという。
「中華文明リセット論」に対する究極の反証、孔子一族。
国家から公的にその地位の世襲が認められた歴史だけで2000年以上ある(現在も継続中)。
乱暴な言い方をすれば、実権のある皇帝は日本の摂関・将軍のようなもので、民族の象徴たる皇室に相当するのが孔子一族。なお、こちらも男子継承。
2025-05-14 福知山線脱線事故 JTSBのレポート¶
福知山線脱線事故、JTSBのレポート読んだことあるけど、車掌の報告聞いて踏切事故だと思ってたけど、とんでもないことになっているのでは?思いつつある指令とのやりとりがホンマしんどい https://jtsb.mlit.go.jp/jtsb/railway/bunkatsu.html
2025-05-14 野崎まど, 『2』¶
2025-05-14 アッシジのフランチェスコ¶
教皇フランシスコは、そう名乗った初めての教皇だった(だから「◯世」とつかない)。800年前に生きたアッシジのフランチェスコの名を名乗る教皇は過去800年誰もいなかった。それを名乗る以上大きな覚悟を要したであろう。教皇フランシスコは「フランチェスコ」であったかは自身も問うた問いだろう。
2025-05-14 鬼滅の刃での善¶
『鬼滅の刃』が「勧善懲悪」かどうか。ラスボスがはっきり極悪でしっかり倒されてるので「懲悪」とは言えそうだけど、主人公サイドに狂気じみた復讐鬼という面があり「勧善」と言えるかは微妙な気はする
敵であっても「二人だけの兄妹、仲良くしなきゃ駄目だよ」と書いたり、半天狗に「お前の人生は嘘ばかり」と見せて反省しない醜悪な様子を描いたり、伊之助がしのぶや仲間を思うようになったり、あの漫画なりの善をかなり強烈に推している印象があります。
おお、なるほど。確かにそうですね
そうとは知らなかったとは言え、鬼になった母を殺して最愛の弟とも疎遠になってしまってそれでもなお未来と弟のために自らの心身に鞭打つ柱に対して「鬼になった妹は絶対に守る」と、鱗滝・冨岡・炭治郎の連名を出すとか、各種葛藤とそれでも譲れない線を描いている点は本当に印象的です。 煉獄だと、圧倒的な強さを見せた柱があっさりと死ぬ一方で、「だからどうした」「未来を繋いで死ぬ」を見せたり、甘露寺も時透も「まだ役に立ってない」「せめて役に立ってから死ね」と極悪な敵に対して瀕死の状態でもなお自らの鼓舞のために言うあたり、凄まじい強度があるように思います。 あと割と強烈なのは恋柱の結婚相手探しのような一応利己的な理由もあるとは言え、隊士の遺言状の多くに「家族・兄弟・他人のため・未来のために自分の命・幸福を捧げる」とか言うタイプの記述があったと思いますし、復讐心から破滅的になった者もいるであろうとは言え、 「未来のために自分は死ぬ」を無惨戦で柱以外も大量に実践し、しかも作中では本当に一瞬の時間稼ぎにしかならない「無駄死」で、それでもなお柱はその強さから何とか生まれた一瞬の時間を本当に活かして無駄死には決してさせないとか、未来と命に関する強烈なメッセージを感じます。
その通りですね。個人的には産屋敷による子供まで巻き込んでの心中自爆攻撃の印象も強く、狂気じみた復讐鬼という言い方になりました
産屋敷親子・姉弟も尋常ではない異常性がある(両親姉爆死後に幼い弟が全権掌握し決戦に向けて全隊士の命運を左右し、しかも当人の自覚も明確に「父」である)中で「異常な存在であろうとも守るべき一線」があって、それが極めて少年誌的な正義の話で、私はその正義を好ましく思う前提で色々書きました よくネタで男塾の「男なら幸せになろうなどと思うな。幸せになるのは女と子供だけでいい。男なら死ねい」がありますが、鬼滅はそれよりさらに過激で「未来を思う者は女子供であろうとも死ねい」で、男塾やら花の慶次で育った私としては少年誌がそこまで来たかと圧倒されます。
2025-05-13 ジョン・クレイグ・ハモンド「奴隷制、領土支配権、諸帝国 : 北アメリカの境界地帯と南北戦争」¶
ジョン・クレイグ・ハモンド「奴隷制、領土支配権、諸帝国 : 北アメリカの境界地帯と南北戦争」を訳しました。奴隷制とアメリカ帝国に関心ある人はぜひ。オープンソースです。 https://fukuoka-u.repo.nii.ac.jp/records/2000533
アメリカの奴隷制が、その始まりから終焉までいかに国家=帝国と手を携えて展開したかを、アメリカ革命を挟んだ二世紀に渡る長期的パースペクティブで捉えた優れた論考。近年の研究動向が凝縮された内容が(無料で)日本語で読めます。必読。
2025-05-11 教科書では語られない、濡れの有名理論WenzelモデルとCassie-Baxterモデルの裏話¶
実験で決めたというのがやはり圧倒的に格好いい.
2025-04¶
2025-04-28 Windowsにおけるフォルダーとディレクトリとは¶
2025-04-22 利用者を「あいつらはくず」 生活保護窓口の闇、役所内からの証言も¶
約10年間で生活保護利用者が半減、母子世帯は13分の1に激減
冒頭であり得ない統計的事実(母子世帯が自治体規模で13分の1に減るわけがなく、受給妨害の結果としか考えられない)を出すことで、よく出る「言われる側にも問題があるのでは」という擁護の余地を完封したいい記事。
約10年間で生活保護利用者が半減、母子世帯は13分の1に激減した群馬県桐生市。
荒木恵司市長は3月28日、市職員による「申請権の侵害」が大きな要因だったと認め、利用者や相談者に「耐えがたい苦痛や不利益を与えた」と謝罪した。
市長が謝罪したのは、約1年にわたり市生活保護行政の問題を検証してきた専門家による第三者委員会の報告書を受け取った後のことだ。報告書は「生活保護法違反」「組織的不正」「規範意識崩壊」などを厳しく指摘した。
再発防止に向けた第三者委からの提言を受けて荒木市長は、窓口相談の録音、利用者からの苦情を受け付ける窓口設置など、踏み込んだ対応をとることを明らかにした。
報告書に大きな影響を与えたと思われるのが、市民から寄せられた証言の数々だ。
第三者委は今年1月に情報提供を募り、集まった100件を超す証言の概要を3月半ばに公表した。他部署の市職員からも複数の情報が寄せられていた。
生活保護利用者について「ろくでもねぇ」「あいつらはくず」と言ってはばからない職員がいた▽保護係の職員による恫喝(どうかつ)、罵声は日常茶飯事で、他課職員でさえ聞くに堪えない内容だった。しかし誰も注意せず、制止しなかった(いずれも市職員からの証言)――。
事実なら人権侵害と言わざるをえない深刻な窓口の実態が、数々の証言から浮かび上がった。
一部を紹介する。
■利用者・家族からの証言
◆保護を受けようとしたとき、子どもを児童相談所に預けることになると言われたが、児童相談所にその話をすると市役所がおかしいと言っていた。
◆子ども4人を抱えた母親。保護を受けて半年ほどで、半強制的に保護を打ち切られることになった。その際、ケースワーカー(CW)から「子どもを養えないということだから、児童相談所に子どもを預ける」などと暴言を受けた。
◆2週間に1度、生まれたばかりの子どもを連れて窓口に出向き、家計簿を提出して、保護費を取りに行っていた。家計簿が1円でも合わないと怒鳴られた。眼鏡を購入した際に、「これは税金ですよ」と怒鳴られた。CWが家を訪問した際、勝手に冷蔵庫を開け、「どんな生活しているんですか」と言われた。
◆県内の他市の高校へ子どもが通学していることについて、CWから「遠くの高校に通うのは、頭がおかしいのでは」と暴言を言われた。
◆障害児を抱えるひとり親。介助などで定職につけず、自分も精神障害があることをCWに話した。児童手当や障害者手当をやりくりして生活している状況を伝えると、CWは笑いながら、働いて得る収入がないことを馬鹿にする態度をとった。ひたすら、すみません、と謝った。
◆母子世帯で、週に1度の分割支給だった。家計簿を提出し、レシートも提出させられて、1円単位で管理された。子どもの卒業に合わせ、貯金をするように指示された。
◆母子世帯で県外で生活保護を受けていた。桐生市へ転居して生活保護申請をしたが、CWから前のところに戻るよう圧力をかけられた。さらに家族全員の顔が見たいと言われ、子ども全員を窓口に連れていくことになった。
◆自宅訪問の際、CWが勝手に冷蔵庫を開けて「卵が4個も入っている」と言った。その後申請が却下された。
◆高齢の父の家のエアコンが真夏に壊れ、購入資金がないことを相談した際、「十分に保護費を渡している。自分で購入するように。熱中症になったら救急車を呼んでください」とあしらわれた。
◆週に1度、レシートをつけて家計簿をCWに報告していた。生理用品の購入を知られるのは嫌だったし、レシートのない自販機で飲み物を買うことさえなじられ、苦痛だった。
◆CWが自宅を来訪し、「保護が長く続いているから、生活保護を切る」という話をされた。理由も説明されなかった。 証言続々
群馬県桐生市が設置した第三者委員会に寄せられた証言の数々。記事の後半では、市職員や福祉関係者からの証言も紹介しています。
◆CWからは、レシートを週に1度持参、市役所に来るときはYシャツにネクタイ、革靴で来るようにと言われていた。ひらがなや漢字の書き取り練習をさせられた。
◆実父の生活保護申請の際、泣いて窮状を訴えたが、CWが「泣いても意味がない」と言って申請にいたらなかった。再度窓口に出向いてようやく申請用紙を交付された。CWから呼び出されたときに通路で、大声で「なぜ父が生活保護になったかわかるか、社会性がないせいだ」と怒鳴られた。
◆自分は知的障害だが、申請のとき「生活保護も知らないの?」などと言われ、馬鹿にされたと感じた。
◆CWから、カウンターを乗り越える姿勢で怒号を受けて、精神的な苦痛を受けた。
◆毎日ハローワークに行くようにいわれ、それがなければ支給は止めると言われていた。CWの指示は絶対で、それに必ず従うように言われた。家計簿をつけなければ支給を停止する、税金で養ってもらっているのだから常識だと言われた。
◆弟が保護をうけていた際に、CWから非常につらい対応をされ、保護をやめさせられ、その後医者に行くこともできず55歳で亡くなってしまった。
◆骨折で入院中、CWから「いつまで入院しているんですか」と言われ、治療中だったが退院せざるを得なかった。
◆交通事故で入院。退院後の通院ではタクシーを利用するが、保護費からその費用が出してもらえなかった。
◆理由もなく、飼い猫を飼ってはいけないとCWから言われた。
◆息子が生活保護を受けていたが、職員から援助できないのか聞かれた。余裕がなく援助不可と伝えたが、何も援助できないのかとさらに聞いてきた。たまに弁当を持っていくことがあると伝えたところ、職員は「1日200円くらいにはなる」と言い、1カ月に6千円ほどの食品を息子に渡していることになってしまった。
◆単身の父親がホームレスのような生活状態(栄養失調、電気ガス水道が止まっている)だと知り、生活保護申請のために窓口に行ったが、家計簿をつけるように言われて申請とならず、再度窓口に出向いたが、「家族で支えあって」と言われて申請にいたらなかった。
◆税金滞納の相談を税務課でした際、保護申請を勧められた。保護の窓口で相談したが受け付けてもらえず、私物を売って1日1食しか食べられない暮らしを続けざるをえなかった。
◆家族全員が保護を受けていないと受けられないと言われ、申請に至らなかった。
◆2週間に1度1万4千円ずつの分割支給をすると言われ、そうしないと保護は受けさせないと言われた。
◆収入申告の書類のなかで、自分で申告したことがないのに、月6千円分の米の仕送りが母からあるという記載がなされていることがわかった。母が届けたこともないのに、その旨の母の扶養届があることもわかった。実体のないこの扶養届のために毎月6千円が減額されていた。
◆生活保護を受けるには自宅から出て遠方の施設への入居が必要で、そうしなければ申請はできないと言われ、やむなく従った。持病があったところ、遠方の施設に入居したため通院交通費がかかることになったが、保護費からこの費用が支給されない。 ■市職員からの証言
◆保護係の職員による恫喝、罵声は日常茶飯事で、他課職員でさえ聞くに堪えない内容だった。しかし誰も注意せず、制止しなかった。
◆生活保護利用者について、「ろくでもねぇ」「あいつらはくず」と言ってはばからない職員がいた。
◆生活困窮者自立支援制度の利用者で生活保護が必要になることを保護係に相談しても、就労ができるというだけで相談自体に乗ろうとしない。保護を申請させないという意識が強く必要な人が利用できない状況が作り出されていた。
◆特定の職員が怒鳴っているのが、よく聞こえてきた。これは周知の事実だと思う。 ■福祉関係者からの証言
◆要支援2となった高齢男性のため、デイケア利用のケアプランを立て、CWに提出したが、「お金がかかるから認めない」として、デイケアを受けさせてあげられなかった。その後その男性は亡くなった。
◆精神障害者の方の申請に同行したが、相談支援専門員である私に対し、CWが「適当な仕事をするな」といった侮辱的対応をしたほか、「申請はここでは受け付けられない」として申請を受けなかった。
◆保護申請の付き添いで窓口にいた際、生活保護利用者と思われる人に対し、CWが「俺だって頑張ってるんだから、お前だってやれるだろう」と大きな声で高圧的な態度をとっているのを見た。
◆金銭管理団体が金銭管理をしている生活保護利用者(週に7千円)がいたので、毎月未払い分があることや、本人が金銭管理できることを伝えたことがあった。しかし金銭管理団体の職員は、「葬式代を貯金してあげている」と話し、金銭管理を続けた。
◆高齢夫妻で持病があり就労不能の状況だったが、保護申請をしようと窓口を訪れても「なぜ働かないのか」「親戚に面倒をみてもらうように」と強い口調で言われ、申請にいたらなかった。
◆税滞納のため自宅を公売されホームレスになった人が、生活保護の申請に出向いたが、「住所がないと申請できない」「施設に入所して、そこで保護を申請するように」として、他市所在の施設見学を案内された。
◆生活保護利用中の世帯の夫が逮捕されたことをきっかけに、連絡もなく保護が打ち切られたようで、同居の配偶者が生活できない状況になった。警察官とともに保護の再開を要請したが、「悪いことをした人の家族は保護を受けられない」という理由でどうにもならなかった。CWが「税金の無駄」などと恫喝をしたため、妻の手が震えるほどになり、追い返された。 ■そのほかの市民からの証言
◆(生活保護担当の)職員と思われる人が、職場ではない場所で、どこの家が生活保護を受けているとか、生活保護の申請に来たなどと話し、生活保護を利用する人を挙げて早く死んだほうがいいという話をしているのを聞いたことがある
◆外国籍の人に対して、職員がすごい声で怒鳴っていた。怖くてしっかり見られないほどだった。
◆生活保護利用中の病気の知人を送迎して同席していた時、家計簿の計算間違いに対し、「計算もできないのか」とCWが罵声を浴びせたので、さすがに私が苦情を言った。他の職員も借金の取り立てのような態度や口ぶりで、とても市役所の職員とは思えないひどい対応だった。今でも許せない。
◆生活保護の担当職員が窓口の男女に向けて、「てめぇら」「ふざけんじゃねーぞ」「さっさと仕事しろや」などと大声で怒鳴りつけている場面をみた。驚き、不快だった。
※「桐生市生活保護業務の適正化に関する第三者委員会」の資料から作成
2025-04-12 令和7年度東京大学大学院入学式 研究科長式辞, 平地健吾¶
令和7年度東京大学大学院入学式 研究科長式辞
東京大学大学院にご入学されたみなさん、誠におめでとうございます。みなさんの新たな門出をともに祝うことができ、大変うれしく思います。また、これまで支えてこられたご家族や関係者のみなさまにも、心よりお祝い申し上げます。
これからみなさんは大学院生として、それぞれの研究に取り組まれることになります。期待に胸を膨らませる一方で、「自分に何ができるのだろう」と不安を感じている方も多いでしょう。本日は、ひとりの数学者としての経験をお話しします。
大学院に入学した当時、私が抱いていたイメージは、おそらくみなさんのものと大きく変わらず、数学者は一握りの天才であり、早熟でなければならないというものでした。映画やドラマに登場する数学者の姿が、影響していたのかもしれません。しかし、早熟の天才しかできないという思いこみは、多様性を阻む固定観念であり、劣等感を肥大させるバイアスになり得ます。数学を学ぶことには、さまざまな研究を志すみなさんと共有できる要素も多くあります。先入観を取り除く一助となればと思い、この場を借りて弁明させていただきます。
現役の天才数学者としておそらく最も有名なのは、プリンストン大学のチャールズ・フェファーマン教授です。彼は14歳でメリーランド大学に入学し、15歳で最初の論文を書き、20歳でプリンストン大学の博士号を取得し、22歳でシカゴ大学の正教授となり、全米最年少の正教授記録を打ち立てました。その後、24歳でプリンストン大学教授に就任し、28歳で数学のノーベル賞と称されるフィールズ賞を受賞しています。
私が35歳のとき、フェファーマン先生とプリンストン大学で共同研究を行う機会を得ました。その初日、二人で夕食を共にした際、先生から「あなたにとって数学とは何ですか?」と問われたことを今でも鮮明に覚えています。私の答えはあとで申しあげることとして、フェファーマン先生は「数学とは、悪魔とチェスの対戦をするようなものだ」と言われました。数学の証明は、悪魔によるいかなる反論も許さない完全な論証で、最初は完敗の連続なのですが、数年にわたって何度も対戦を繰り返すうちに、ついに勝利の瞬間が訪れるというのです。
私は、天才といわれる数学者でさえ、そんな苛酷で厳しい戦いを常にしているのかと驚きました。フェファーマン先生の「放物型不変式論」という論文には、実際に“悪魔と対戦するゲーム”が登場します。先生の話を聞き、私はこの論文の戦いの記録のような独特な叙述法に納得がいきました。
さて、私自身がどのように答えたのかは、じつはたいへん緊張していたので正確には覚えていません。いま改めて言葉にしてみますと、私にとって数学とは、「問題を正しく理解する方法を見つける探検」だと答えたように思います。適切な視点が見つかれば、問題は自然と解決へと向かいます。探検を続けるうちに視界が開け、理論はより簡潔で分かりやすいものになるというプロセスの楽しさに光を当てたかったのです。悪魔との戦いに比べると、いささか地味かもしれません。
ところで私の最初の業績と言えるのは、じつは先ほどの「放物型不変式論」の未完成部分に新たな視点を加え、完成へと導いたことでした。これは、フェファーマン先生をはじめ先行研究をじっくりと学んで考えた末に、見つけだした解決策です。悪魔と直接戦う英雄的な数学者も必要ですが、数学の発展には、私のように問題の周辺を丹念に探検する数学者も重要な役割を果たしています。
「巨人の肩のうえに乗る」という比喩を、科学史ではよく聞きます。いわゆる十二世紀ルネサンスの人文主義者が使いはじめて、近代物理学の基礎を作ったアイザック・ニュートンの手紙で有名になった語句です。小さな自分がより遠くを見わたせるのは、じつは巨人たちの肩のうえに乗っているからだといって、学知をつくりあげてきた巨人たちに学ぶことの大切さを説いています。しかしながら、肩のうえに登っていくこと自体も、けっして簡単なことではありません。そのためには、巨人そのものを十分に理解し、そのかたちを正確に把握し、登る道すじを整備していく丹念な作業も必要です。そうしたプロセスもまた、新たな発見をもたらすのです。
次に、数学は早熟でなければならないのかについて触れたいと思います。数学は音楽と同じように、幅広い知識や深い人生経験を必ずしも必要としません。ですから、ガウスやモーツァルト、そしてフェファーマン先生のように、若くして才能を開花させる人もいます。たしかにイギリスの数学者ハーディは、その著書『ある数学者の弁明』の中で、数学は「若者のためのゲーム」であると表現しています。そういわれると、「自分は出遅れているのではないか」と焦りを感じるかもしれません。しかし、自信を失うことはありません。すべての人がすでに若くして完成している天才ではないからです。
ここで、プリンストン大学のホ・ジュニ(許埈珥)教授のエピソードを紹介します。彼は小学生の頃、算数の成績が悪く「自分には数学の才能がない」と思い込んでいました。詩人を志して高校を中退しましたが、その後ソウル国立大学に進学し、サイエンスライターを目指して天文学と物理学を専攻します。
大学院在学中の24歳になって、フィールズ賞受賞者である広中平祐先生の代数幾何の講義をサイエンスライターとして取材し、次第に数学の魅力に引き込まれていきます。その2年後には数学の論文を書き修士号を取得しましたが、特に優秀な学生と認められることもなく、アメリカの多くの大学院に応募したものの、合格したのは1校だけでした。しかし、その13年後の2022年、彼は韓国系の数学者としては初めてのフィールズ賞を受賞します。学生時代の彼を知る誰もが予想できない快挙でした。
うまず、たゆまず、自分のペースを大切に、探究心を持ち続け、研究に取り組むことが大切です。東京大学の教職員は、みなさんの挑戦を全力でサポートします。また、優れた才能を持つ仲間に囲まれていることを前向きに捉えることも重要です。同じ分野に取り組む仲間や、先を歩む先輩方から多くの示唆や助言を得られる恵まれた環境が、東京大学にはあります。研究の中で直面する課題や悩みも、一人で抱え込む必要はありません。
数学に限らず、ほぼすべての分野の研究者に共通することですが、「行きづまり」が大きな試煉であると同時に、おもしろさや楽しみの源であることにも触れておきたいと思います。研究の目標を設定し、それに向かって取り組むと、やがて完全に行き詰まる瞬間が訪れます。もし、行き詰まりがまったくないとすれば、それは十分に難しい問題に挑戦していないからでしょう。先ほどお話しした「放物型不変式論」はたしかに難しい問題で、大学院に入って勉強を始めてから解決の糸口が見えるまで、4年もかかりました。また、現在取り組んでいる幾何学の論文の最初のアイデアが見つかったのは、考え始めてから10年後です。絶望的な「行きづまり」に耐え、考え続けるからこそ、発見の喜びはひとしおです。 私はその喜びのために数学を続けているのだと実感しています。
みなさんも、心から興味が持てる、十分に難しい問題に取り組み、絶望的な行き詰まりを経験してください。そして、決して諦めずに考え続けてください。それこそが、研究の喜びにつながる長く曲がりくねった道なのです。
改めて、みなさんのご入学を心よりお祝い申し上げます。これからの大学院生活が実り多きものとなることを願っています。
令和7年4月11日 数理科学研究科長 平地 健吾
2025-04-12 視覚障害者のChatGPT利用法¶
目の不自由な友人がChatgptを課金してフル活用しているというので、どう使っているかを聞いたところ、「写真を撮って、何が映っているかを説明してもらう」と。 技術の進歩ってスゲー…と心底思いました。
2025-04-12 安慧(Sthiramati)の『倶舎論複注』第一章に対する世界初のサンスクリット刊本, Tattvārthā. Sthiramati’s Abhidharmakośaṭīkā, Chapter 1, Part I Diplomatically edited by Nobuchiyo Odani in collaboration with Kazunobu Matsuda and Hironori Tanaka¶
日本が世界に誇るべき偉業がまたここに。
安慧(Sthiramati)の『倶舎論複注』第一章に対する世界初のサンスクリット刊本が出たようです。編著者は日本人研究者3名。
オーストリア科学アカデミーの出版物は安定のオープンアクセンスでありがたい。
2024-04-11 アレルギーでも食べられるプリン系食材¶
紀文の豆乳で作ったデザート風とうふ チョコバナナ味。 今までも豆腐系のプリンはあったけど、チョコバナナ味ってところがいい🍫🍌
意外とチョコバナナ味ってなかったですよね🤭
公式さん😳✨ 本当にこういう商品ってアレルギーっ子の憧れなんです!!!全アレルギー持ちを代表して感謝を伝えさせてください!ありがとうございます😭 そして、めっちゃ美味しいです! 昨夜、娘が感激していました💕
そういうことでしたか!!!!😭よかったです😭 もし差し支えなければ、何のアレルギーをお持ちですか、、??この商品にそのような需要があるとは知らず、可能であれば社内で報告させていただき、引き続きお召しあがりいただけるような、商品化に努められればと思っております🙇♀️
2025-04-09 カクヨムでのフルメタルパニック¶
カクヨムでテッサの話の続きをやります。「カクヨム 賀東』で検索して下さい! フルメタFと機動転生、両方楽しめます。
あとできればサポートもしてもらえると、ありがたいかな…
/
カクヨムネクスト¶
📣 新連載情報 \
4/23(水)17時に連載開始! 『フルメタル・パニック! Family』 著:賀東招二
ドラゴンマガジンからの移籍連載 お楽しみに✨
2025-04-08 虚構系資料の代表格の「仏像付き十字架」¶
ドイツに留学中の研究者さんから「宗教的接触に関する理論的学術書が出たようです」と教えてもらったのですが、本の表紙になっているのが虚構系資料の代表格の「仏像付き十字架」…! 嫌な予感しかしないのですが、オープンアクセスになっていたのでPDFを落として日本のところだけ一読。嫌な予感は概ね的中しました。こちらではThe Buddha crossとして紹介されています。キリシタンについて書かれているのはp112から。以下、要約です。
「17世紀の日本では、キリスト教は国家体制への脅威と見なされ、弾圧を受けた。信者たちは仏教徒として振る舞いながら、密かに信仰を守る道を選んだ。この過程で仏像の中に十字架を隠したり、キリストの姿を仏陀に置き換えたりするなど、象徴の改変が行われた。こうした工夫は、命を守るための防御策であると同時に、「宗教的接触」による文化的融合でもあった。キリスト教と仏教の象徴や儀礼が交わることで、両者の境界が曖昧になり、新たな信仰のかたちが形成されていった。このような宗教的接触は、支配や迫害の歴史の中で生まれた独特な宗教文化の創出に寄 与した」
――しかしこの論の前提となっている「仏像付き十字架」は虚構の資料なので、このように宗教文化が創出されたとはいえないわけで。著者が引用している海外の論文も読んで反論していかねばと。
私にそれだけの実力があればの話なのですが。 こちらからダウンロードできますので、よかったら。 https://brill.com/display/title/62357
もちろん歴史学ではなく宗教学の理論の本なので、歴史認識の正誤が論点ではいないのですけど、それでも根拠となる資料の虚構性は指摘すべきだと思うので。
2025-04-07 エアロバイク痩せないと書いてる人は最大心拍数の約65%キープしながら漕ぐことを知らない人¶
エアロバイク痩せないと書いてる人は最大心拍数の約65%キープしながら漕ぐことを知らん人や…ステッパーはこの痩せる心拍数まで持っていくのはかなり難しいけど大体のエアロバイクは負荷調整できるので正しく使えば痩せます。心拍数を測るのには意味がある。数字は裏切らない。人は裏切る。
2025-04-03 なぜ関税強化なのか トランプ政権ブレーンが語る「改革保守」の真意¶
なぜ関税強化なのか トランプ政権ブレーンが語る「改革保守」の真意 聞き手・池田伸壹2025年4月1日 17時00分
関税強化に突き進む米トランプ政権。それを進言した政権ブレーンの一人として注目を集めるのが、米保守派論客でエコノミストのオレン・キャスさんだ。政権幹部や一連の政策に影響を与えながら、自身は政権には入らず、むしろ「重要なのはトランプ後」だとまで言う。その意味とは。真の狙いは、どこにあるのか。 写真・図版 米保守系シンクタンク「アメリカン・コンパス」のオレン・キャスさん=2025年3月、東京都中央区、西岡臣撮影
キャス氏とは何者なのか。米国保守の歴史の中で、その思想と特徴はどのように位置づけられるのか。ジャーナリストで思想史研究者の会田弘継さんが、共和党と民主党の状況にも触れながら解説するインタビューも併載しています。
――矢継ぎ早の関税政策などはトランプ大統領個人の思いつきではなく、あなた方は2017~21年の第1次政権の時期からこうした政策を練り、進言していたそうですね。
「その通りです。それが米国にとって唯一の解決策だと考えたからです。経済学者らは当時、米国経済は過去にないほど素晴らしい状況だと言っていましたが、私たちは賛成できませんでした。実際は01年の中国のWTO(世界貿易機関)加盟で、米国の産業基盤は(中国の輸出増などにより)加速度的に弱体化し、限界に達していました」
「それに伴い、私たちの社会も弱体化していました。『絶望死』という現象が典型的です。特に中年の低学歴の白人の間で、薬物やアルコール依存、自殺が増え、平均寿命にまで影響を与える事態になりました。グローバル化の下、米国は若者を海外での戦争に送り、失業と絶望を輸入し、大切な仕事を海外に送ってしまったのです。1980年代の保守の発想は『市場経済と自由貿易』でしたが、いずれも、こうした状況を解決するには有効ではありません。だから関税なのです」
――しかし関税は、米国へ輸出する国だけでなく、物価の上昇などで米国民も苦しめ、誰も幸せにしないのではないでしょうか。
「全く同意しません。短期的には様々な痛みを伴うかもしれませんが、長期的には大きな利益をもたらすと思っています。ひとくちに関税といっても、別々に考えるべき二つの側面がある。一つは交渉のツールとして、もう一つは経済政策としての側面です」
「第2次大戦以降、米国は、関税を交渉のツールとして使うことを基本的に放棄してきました。いま重要なことは、米国が実際に関税を、行使できる力の一形態として使っていることです。そして関税は、経済政策としても理にかなう場合があります。国内で何かを製造することに価値があると信じ、国内産業を保護しようとするなら、効率的な政策手段です」
――国土も狭く、資源にも恵まれていない日本のような国にとって、自由貿易は死活的に重要です。
「日本経済が輸出入に深く依存していることは理解できます。私は、米国と日本はバランスの取れた自由な貿易のパートナーになりうると思っています。これから日米間で、通貨や貿易、産業政策などをめぐる交渉は必要になるでしょう。貿易の不均衡を解決するには、内需が不足しているといった、日本が解決しなければならない問題もあります」
「しかし、ここで注意しておきたいのは、日米を含む自由貿易が成立する領域に、中国は加わっていないだろうということです。これまで保守の常識では、自由貿易は原則推進が『善』とされ、中国のWTO加盟は保守も推進した上で実現しました。ただ米国では、中国が経済的に豊かになれば民主化すると考えていた人も多かったのですが、誤りでした。今後の可能性はゼロとはいえませんが、いま政策を組み立てる際、中国の民主化が近い将来に実現することを前提にするのは誤りでしょう」
――教科書的な話ですが、各国が優位な産業に集中し、自由貿易を行うことでこそ、全体が豊かさを享受できるのではないのですか。
「教科書で習ったアダム・スミスもデイビッド・リカードも、共産党が支配する大国との自由貿易について考える機会はなかったでしょう。中国と自由貿易を行うということは、共産主義の優先順位や政策を、私たちの社会に受け入れるということです」
――かつて、中国の習近平(シーチンピン)国家主席を「素晴らしい友人」と呼んでいたトランプ氏も、そう理解しているのでしょうか。
「今はよく分かっているはずです。またスミスやリカードは、最近の米国のように、モノを買う代わりに何かを売るのではなく、国際基軸通貨ドルで米国債を発行して借金するなどという状態を想定していなかったのではないでしょうか。私たちは、生産よりも消費に偏った米国を変えていこうとしています。そうしたことを一つ一つ解決していく必要があります」 写真・図版 米保守系シンクタンク「アメリカン・コンパス」のオレン・キャスさん=2025年3月、東京都中央区、西岡臣撮影
――そうした考えをまとめた2018年のあなたの著作を、ハーバード大学のマイケル・サンデル氏やニューヨーク・タイムズのコラムニストも評価していました。書評で称賛した仏文化人類学者のエマニュエル・トッドさんに最近インタビューしました。米国の社会と経済の現状認識についてはあなたと非常に近い考えでしたが、米国の国内産業の再生については「100年単位の歳月をかければ」と悲観的でした。
「本当ですか? トッド氏と会ったことはなく、フランス語での書評が突然出て、驚きました。色々な見方を共有していると思いますが、産業再生に100年かかるという意見には賛成できません。米国は過去25年ほどで脱工業化が進んだため、基本的には同程度の時間が再生に必要だと考えられます。しかし、そのプロセスを速めることも可能だと信じています。80~90年代にかけて、ホンダやトヨタ自動車などの日本の自動車メーカーが巨額投資をして、短期間で米国工場を稼働させたことを考えてください」
「81年のレーガン政権誕生まで、日本メーカーによる生産はゼロでした。最初は組み立て工場をつくり、やがて部品工場などを含めたサプライチェーン全体が米国に移りました。今では、トヨタとホンダは米国に巨大な研究施設を持っています。結果として、品質低下や価格上昇も起きず、消費者に素晴らしい商品が提供され、何十万もの雇用を生んだのです。これから同じことが半導体でも、さらに速いペースで、さらに大規模に起こると期待しています。生産の自動化も追い風になるでしょう。私はAI(人工知能)が人間に取って代わるとは思っていませんが、あらゆる技術の進歩が米国の産業再生に貢献すると思っています」
――日本製鉄によるUSスチール買収も、米国産業再生の成功例になり得るでしょうか。
「そうは思いません。もし80年代に日本車の洪水のような輸出が問題になっているときに、トヨタがケンタッキー工場を建設するかわりに、伝統あるフォードを買収して近代化するという投資計画を発表したらどうだったでしょう。経済学者が『投資としては同じことだ、何を騒いでいるんだ』と言っても、心理的には大きな違いがでます。間違いなく社会的反発を受けたことでしょう」 今は過渡期、重要なのは「トランプ後」
――ひとくちに保守派といっても、トランプ政権には様々な流れが集結しているようです。あなたは、どのような保守派ですか。
「私たちのグループは、ポピュリズム的な『MAGA(米国を再び偉大に)』運動の一員でも、イーロン・マスク氏に代表されるような、規制緩和や技術革新に関心が高い『テクノ・リバタリアン』でもありません。もちろん、妊娠中絶反対派や宗教右派でもありません。あえて言えば、いずれとも異なる『真正の保守派』です。普通の家族が自立して生活を営む能力、子どもを育てる能力が低下し、地域のコミュニティーが弱くなっていることを、何よりも問題視する保守派です」
「いくら株価が高く、ウォール街やシリコンバレーが繁栄しても、家族やコミュニティーが弱くなってしまっては意味がありません。レーガン政権時代の80年代に確立された(市場経済と自由貿易が善の)保守運動は、東西冷戦期に共産主義と対抗することが最大の課題でした。私たちは、現代の課題に保守がどう対応するかを考えています。格差拡大、労働者と家族、コミュニティーに焦点をあてることが課題です。市場は手段であり目的ではない、という認識も必要です。外交政策についても、2020年代の実際の問題に適用できる保守的なアジェンダを構築することです」
「まだ保守派は雑多な寄り合いで、ビッグバン後の混乱が続いていますが、それが大きな連合となる可能性があると思っています。大きな連合が形成されるとき、それが非常に混乱して見えるのは当然ですが、それは健全なプロセスの一部だと信じています。私の仕事は、保守的な流れをまとめる思想や政策を作り上げることです。私は共和党、そして保守運動を、現代の問題に適応するように変革し、支持基盤を大きくしたいのです」
――それを第2次トランプ政権の任期4年で達成できますか。
「確かに十分とはいえないかもしれませんが、これは過渡期であり、私はトランプ氏を『過渡的な人物』と考えています。彼が非常に得意なのは、これらの全く違うグループを結集させることです。しかし、彼が全く不得意なのは、これらの対立をどのように解決するかを自分の頭で考えることです」
「ただ、4年は、多くの対立を解決するには十分な時間です。重要なのはトランプ後です。これから2028年に向けて、バンス副大統領やルビオ国務長官のような人物が大統領候補としての指名を受ける世界を想像しましょう。次の指導者たちは、『これが新しい保守の連合で、これがそのアジェンダです』と語るのにふさわしい存在になるでしょう。混乱の期間があり、物事が解決され始め、次のリーダーが明確なビジョンを持ち、それを前進させる時期が来ます」
「米大統領選の(党候補者を決める)予備選挙の非常に良い点の一つは、それが解決策を検証するプロセスを提供することです。異なる人々が、それぞれの解決策を掲げて立候補し、競い合うことでしょう。それはすでに始まっているのです」 写真・図版 米保守系シンクタンク「アメリカン・コンパス」のオレン・キャスさん=2025年3月、東京都中央区、西岡臣撮影
――あなたは今41歳で、次の大統領候補たちと同世代ですね。
「ルビオ国務長官は少し上、バンス副大統領は1歳下です。これは非常に重要なポイントです。私たちの世代以降は、冷戦もレーガン政権も、歴史の本でしか知りません。この世代が大きな問題として直面してきたのは、冷戦ではなく中国のWTO加盟による問題、イラクとアフガニスタンでの戦争、経済の金融化と金融危機、ビッグテック企業の台頭、薬物中毒、絶望死、パンデミックなどです」
「トーマス・クーンの『科学革命の構造』は日本でも読まれているでしょうか。パラダイムが変わったのです。それに対応する政策が必要です。私は、トランプ政権による政策は長期的には非常に良い結果をもたらすと楽観していますし、トランプ後も(保守政策の流れは)変わらないと信じています」
――トランプ政権の4年間を何とか耐え忍べばいい、という発想では乗り切れないということですか。
「次の世代が権力を持つ世代になるのは、ほぼ自明の理です。それは非常に健康的なことであり、硬直した状態を打破する方法です。クーンが好んで引用したように、ちょっと厳しい言い方ですが『一つの葬儀ごとに進歩する』のです。特に政治においては、選挙で選ばれたリーダーは常に少し遅れた指標です。過去の世代のアイデアに基づいた経歴と実績を築いてきたからです」
「今は、非常に健康的な世代交代が進んでいます。ベビーブーム世代がキャリアの終わりに近づき、もっと現在の課題に関心やつながりを持つ人々が中核に入ってきています。私たちの重視することが主流になることは、もう避けられないでしょう」
――ただ、マスク氏の第2次トランプ政権での動きには批判的ですね。
「マスク氏は、保守的な連合において価値ある役割を果たす可能性のある人物です。彼のビジネスでの成功や民間セクターの力に焦点を当てた姿勢は、共和党支持者一般が求めるものです。しかし、同じ人物が政府機関を効率化し、うまく閉鎖する方法を知っているかは別問題でしょう」 「恒久的な変化」と信じさせるために
――初めて来日し、日本の様々な人と交流や意見交換をして、何を感じていますか。
「正直に言えば、私はトランプ政権の『ショック療法が必要だ』という主張に、より同調しています。なぜなら、最近訪問したカナダもそうでしたが、特に日本で、古いパラダイムや旧モデルへの強い固執を感じたからです。何らかの言葉や行動を駆使すれば、何とか旧モデルを維持できる、と信じている人が多いのです」
「トランプ大統領と、彼の政権で国際交渉に関与する人々も、彼らが試みた対話で、米国の外の世界では思考の変化があまりに少なく、米国の変化が理解されていないと強く認識しています。何が問題で、なぜ変化が必要か理解しておらず、旧モデルを維持することが依然として選択肢の一つだと信じています。新しい方向に進むための第一歩が、もはや旧モデルは選択肢ではないと納得させることだとしたら、その方法を見つける必要がある。これは経済政策の問題というよりも、政治的・心理的な問題です」
――真剣に受け止めていないように感じていると。
「はい。変化が恒久的であると信じるかが、まず大切です。慎重なアプローチを取るほうが信用度を高めることもあるでしょうが、強力に揺さぶるほうが高まる場合もあります。関税政策が実施されたことは、その意味でも非常に重要だと感じています」 オレン・キャスさん 写真・図版 米保守系シンクタンク「アメリカン・コンパス」のオレン・キャスさん=2025年3月、東京都中央区、西岡臣撮影
Oren Cass 1983年米国生まれ。2012年の米大統領選挙で、20代で共和党のミット・ロムニー候補の国内政策ディレクターに。20年に保守系シンクタンク「アメリカン・コンパス」を創設。英フィナンシャル・タイムズや米ニューヨーク・タイムズの定期寄稿者。著書「The Once and Future Worker」(未邦訳)はマイケル・サンデル氏やエマニュエル・トッド氏らに高く評価された。3月に国際交流基金の招きで初来日した。 変わる保守、リベラルは ジャーナリスト・思想史研究者 会田弘継さん
「思想は必ず実を結ぶ(Ideas have consequences.)」。米国保守が好んで使うフレーズです。保守自体の改革を志向する「改革保守(リフォーモコン)」と呼ばれるオレン・キャス氏の思想と言論活動は、この1月にスタートを切った2期目のトランプ政権の誕生とその政策として実を結びつつあるだけでなく、米国政治を何十年、あるいは100年規模で歴史的に変える可能性があります。
従来の共和党や保守派は、減税や「小さな政府」を目指し、自由貿易を進めてきました。それに対して、注目を集めている関税のような保護主義的な政策も採り入れて産業を再生し、白人だけでなく多様な労働者から支持される保守を目指すのが彼の主張の特徴です。1930年代のニューディール連合にとって労働者や進歩的な知識人だけでなく南部の保守的な白人も参加したことが重要だったように、強大な政治的連合は、常に異質な者を包摂してきました。
現在のトランプ政権は、政治連合の形成過程にあり、色々な流れが併存して競い合っている状態です。第1次トランプ政権で首席戦略官を務めたスティーブ・バノン氏のような「MAGA(アメリカを再び偉大に)」運動のポピュリズム的な流れ、そしてイーロン・マスク氏に代表されるような「テック右派」、あるいは「テクノ・リバタリアン(自由至上主義者)」の伸長ぶりは日本でも報道されてきました。
このインタビューでも、自らを「MAGA」でも「テクノ・リバタリアン」でもない「真正の保守派」と名乗っているキャス氏らの思想も重要です。ルビオ国務長官の上院議員時代に連携してシンクタンクを設立。多くの関係者が重要な政権ポストに就いています。1歳違いで40歳のバンス副大統領とも深いつながりを持っています。思想と政策の面から大きな連合を作り出す可能性があり、そのために自身は政権には入らず、故郷の北東部マサチューセッツ州を拠点に、自由に発言することを何よりも重視しています。私には、政府には加わらずに明治維新後の日本に影響を与えた、福沢諭吉のような存在に感じられます。
一方で、民主党の側はどうでしょうか。2016年の大統領選挙では、進歩主義的な政策を掲げたサンダース上院議員が躍進しました。共和党のトランプ氏の登場と同様に、既成政党に対する強い不満や不信を反映したものでした。
しかし、民主党は20年に党主流派のバイデン前大統領を候補にしたことも相まって、本格的な党の改革に手をつけないまま、今に至っています。
かつて民主党は、レーガン政権誕生で1980年代に大統領選挙で連敗したことを受け、85年に民主党指導者会議(Democratic Leadership Council、DLC)を設立し、レーガン政権に対抗するため、伝統的なリベラルな政策から離れ、より中道的で市場経済に軸足を置いた政策を模索。アーカンソー州知事としてDLCに参加していたクリントン氏が92年にホワイトハウスを奪い返しました。
しかし現在、民主党内に大きな変革への動きは見られません。逆に、戦前のニューディール連合から伝統的な民主党支持層だった労働者や非白人などを、トランプ氏の共和党に奪われた状態です。
民主党は、ジェンダーや多文化主義といったことには熱心でも、格差拡大への対応や労働者への目配りで立ち遅れていると批判されています。クリントン時代に企業寄りになってしまった民主党が、もう一度、労働者の支持を集められるのかが重要です。
トランプ氏は、一時的な変化ではなく、経済や社会の構造的な変化に伴って、再び大統領になったということでしょう。現在の米国で起きつつあることは、一種の革命ではないかと思っています。 会田弘継さん 写真・図版 ジャーナリストでアメリカ思想史研究者の会田弘継さん=朝日新聞東京本社、池田伸壹撮影 あいだ ひろつぐ 1951年生まれ。共同通信ワシントン支局長、論説委員長、青山学院大学教授などを歴任。著書に「それでもなぜ、トランプは支持されるのか」など。
2025-04-01 アサシンクリード弥助問題¶
I was recently asked by some of our Japanese friends to weigh in on the conversation surrounding Assassin's Creed: Shadows.
Here's my perspective on what this conflict really represents.
最近、日本の友人数人から『アサシン クリード シャドウズ』に関する会話に加わるよう頼まれました。
この紛争が実際に何を表しているかについての私の見解は次のとおりです。
2025-03¶
2025-03-31 ピクトグラムを生成してもらう¶
あーーーー個人的にこれ出せるのが一番有難いな 資料作成する時の挿絵、いらすと屋でもいいんだけどちょっとお堅めの資料作る時毎回いい感じのピクトグラム欲しいなぁと思ってたのですげえ助かる 既存の画像生成だとピクトグラム全然作れなかったんだよな、しかも透過PNGだし
2025-03-30 何故、子供は2歳のときにアンパンマンが大好きになり、5歳になると「ださい」というのかを検討した研究(西川,2010)¶
何故、子供は2歳のときにアンパンマンが大好きになり、5歳になると「ださい」というのかを検討した研究(安田,2010)。😂
アンパンマンが人気の理由を二歳児を担当する保育士や、保育実習を終えた学生、アンパンマンの出版社(フレーベル社)へのアンケートを通して検討。「泣いている子に「アンパンマンが見ているよ」というと泣きやむ。」など微笑ましい事例がたくさん出てきて楽しい。
アンパンマンのいつも笑顔、乳児でも認識できる単純な丸顔、食事を与えてくれるという特徴が、乳児の認識しやすさ、愛着のもちやすさにつながったと考えられる。 また、出版社の戦略によってロングセラー化し、「アンパンマンン=赤ちゃんキャラ」という共通認識が生まれている。5歳児は「もう赤ちゃんじゃないから!」という意識のもと、アンパンマンを「ダサい」とみなすのではないか、とのこと。
実は、ヒトは乳児(一歳未満)の段階から他者を助けようとするキャラクターを好むということが示されており(Kanakogietal.2017)、人を助けるという分かりやすいストーリー性も見逃せない点かなと思います。
原著論文 西川ひろ子(2010). 乳幼児のキャラクター志向に関する研究:何故,子供は2歳のときにアンパンマンが大好きになり,5歳になると「ださい」というのか安田女子大学紀要(38),139-147 < https://yasuda-u.repo.nii.ac.jp/records/295>
参考文献 Kanakogi, Y., Inoue, Y., Matsuda, G., Butler, D., Hiraki, K., & Myowa-Yamakoshi, M. (2017). Preverbal infants affirm third-party interventions that protect victims from aggressors. Nature Human Behaviour, 1(2), 0037
2025-03-24 Cursor / Clineを使う上でもっとも重要なことの一つ: コンテキストウインドウについて¶
2025-03-24 言語モデルの物理学¶
2025-03-24 「舗装された道路を歩かないでどうやってここまで来たんですか?」¶
そう言えば昨日、先週のレコーディングの時に某プロデューサーから「俺、税金の恩恵受けたことないんだけど、税金払う意味ってあるの?」って言われた時に「舗装された道路を歩かないでどうやってここまで来たんですか?」って返したの、根に持たれてると情報が来ましてね(´ω`)
2025-03-23 「才能」はそれ自体に価値はない 「才能を利用できた人間」になって初めて価値が生まれるのだと¶
最近見た中で一番しっくりきた言葉(メダリスト引用)
彼の才能が日の下で輝けず消えていくことの意味を考えた
「才能」はそれ自体に価値はない
「才能を利用できた人間」になって初めて価値が生まれるのだと
2025-03-17¶
同性婚や夫婦別姓の問題は2つ大きな論点がありますね
- 戸籍や住民基本台帳に様々な人間関係の記載を増やしていくのは現実的ではないし、プライバシーの観点からも適切ではない。公的記録として永代残すことの重みを考えていないのではないか。先祖が同性愛者だ、別姓を選択したということが残る。
- 法律で明文化されていないから、認められていないというのは危険な考え。事実上の同性婚をすることは禁止されていない。ペットや機械と結婚してもいい。それどころか、重婚は刑法で禁止されているのに、本当の意味での重婚が摘発された例はなく、日本では重婚禁止規定は死文化しているのが実情(正確には重婚が摘発されることはあるけど、偽装結婚の摘発のために、いわゆる別件逮捕みたいな運用がされている)
2025-03-09 漫画センゴクの柴田勝家¶
「センゴク」の柴田勝家、秀吉や光秀みたいに政略や知略に長けたわけでも丹羽みたいに事務処理能力に長けたわけでも久太郎みたいに器用な訳でもないけど、そのクソでっかい背中と男としての「太さ」だけで味方を鼓舞し織田軍を引っ張って信長を支えてきたという理由で「筆頭家老」なの納得感しかないよ
2025-03-06 自閉症を持つ私から見た日常¶
自閉症を持つ私から見た日常 大阪青凌中学校 3年 藤田 壮眞
私は重度自閉症である。いつも叫び出したい衝動を感じている。でも叫ばない。叫んではいけないと学んだからだ。この作文で私から見える世界を、みんなに共有したい。
小学校は支援級に在籍していたが、現在は中高一貫で少人数制の私立中学に通っている。4歳の時に注意欠陥多動優勢の自閉症スペクトラムと診断を受けた。小学6年生の時に身長が止まり、成長ホルモンを毎日注射している。身長は146センチで、15歳男子平均より20センチ以上低い。
家族とファミリーレストランに行くと、店員が「子供椅子はいりますか」と笑顔で聞く。耐える私に、今度はキッズメニューを差し出してくる。見た目で判断しないでください。そう伝えたいけれど、見た目で子供なのだから、店員を責められない。やりどころの無い怒りを抱えて私は黙る。
私は授業中によそ見をしてしまう。宿題のお知らせを聞き逃し、やってこない。不真面目で意欲を持っていないと評価される。悲しい出来事で、何度も泣いた。
真面目に授業を受ける気持ちで座っているが、教室はその気持ちを阻む様々な情報であふれている。クラスメイトの動きやきぬ擦れの音がとても不快な音でジャリジャリと聞こえる。ノートの上を動くシャープペンシルの音は不協和音で合奏している。エアコンの音がごおごおと鳴り、隣の教室からも似た物音が聞こえてくる。等々きりが無い。
私はいつも叫び出してしまいそうで、疲れ果てている。先生の声は、200メートル先の、遠くのトンネルの向こうから聞こえる感じで、なかなか拾えない。
自閉症なのによく喋(しゃべ)ることが出来るね、と言われる事がある。私は人と関わるのが大好きであるし、お喋りも好んでする。だがコミュニケーションがしっかりとれているわけではないようだ。私を母はたまにラジオと呼ぶ。一方的に喋って満足してしまうからだ。
人の気持ちを読み取るアンテナが通常なら5本立っているならば、私は1本しか立っていないからだ。私は自分の気持ちも分からない。心を自分に感じない。だけど、相手を泣かせた時は、私の目から涙が出てくる。悲しい気持ちだと教わるけれど、なかなかつかむことが出来ないでいる。
自閉症の子供が産まれて、悲しむ家族もいるだろう。でも私達(たち)は学ぶし、成長する。人の気持ちが分かりにくいけれど、人が嫌いではない。小学校では床で寝転んでいたが、今は椅子に座り、必死に勉強している。
私達にはみんなと同じだけの未来があり、期待を持っている。私が間違った時は、あきらめないで教えて欲しい。私もこの困難な世界に向き合い、痛みを知っているぶんだけ、弱さを持っているぶんだけ、他の誰かに優しくなれる大人になりたいと考えている。
想像超えた事実 教える
外見や行動などで誤解されることの多い自閉症。その実際を知ってほしいとペンをとった藤田さんは、我々の想像を超えた事実を次々とつづっていきます。「みんな違って、みんないい」などといいますが、お互いを知り理解しあった上でのこと。そのために作文がとても役立つことも教えてもらいました。(石崎洋司)
2025-02¶
2025-02-28 Riku, アニマ:なぜラテン語の名詞変化表には「主格・対格・属格・与格・奪格」の配列を使うべきなのか?―初心者に贈る習得ガイド(2)「格変化を学ぶ前に必ず知っておきたいこと」―¶
2025-02-24 沼田一郎『マハーバーラタ』第12巻「王法の章」の訳註研究¶
近年、沼田先生が『マハーバーラタ』第12巻「王法の章」の訳註研究を開始されていて、批判版にもとづく日本語訳を見られるので重宝します。
https://toyo.repo.nii.ac.jp/records/14488
https://toyo.repo.nii.ac.jp/records/2000847
カルナが聖仙パラシュラーマに弟子入りした後、偽りがバレて呪詛を受ける場面も訳註第二弾に入ってます。
2025-02-23 古アヴェスタ語辞典¶
話題の古アヴェスタ語辞典、現物はこちらです。実に威風堂々としたお姿。 辞典の後半部はテキスト・英訳・語釈つきのリーダーなので、この大辞典を使って古アヴェスタ語の授業もできそうです。 繰り返しますが、本辞典の全体は以下でダウンロード可能です。
2025-02-20 二人称代名詞「あなた」の言語学¶
何やら二人称の「あなた」が話題のようですが,比較的最近の調査(と先行研究のまとめ)はこちら。
米澤陽子(2016)「二人称代名詞「あなた」に関する調査報告」『日本語教育』163
では他にどう呼べるのか,という二人称表現全般のお話はこちら。
金井勇人(2002)「失礼さという観点から見た二人称指示の体系」『早稲田大学大学院文学研究科紀要(第3分冊)』48 https://sucra.repo.nii.ac.jp/records/17980
2025-02-18 J.D.ヴァンス米副大統領の、ミュンヘン安保会議 (2025/2024)での発言¶
- 山形浩生の「経済のトリセツ」, J.D.ヴァンス米副大統領の、ミュンヘン安保会議 (2025/2024)での発言
なんかミュンヘンの安全保障会議で、アメリカ副大統領のJDヴァンスが何やらいったとかで、Twitterで安全保障の専門家なる人々があれこれ論評していた。アメリカのヨーロッパとの決別姿勢があらわになったとか、もうアメリカはヨーロッパを支援しないぞとキレたとか、ロシアとの交渉が勝手に進められそうだとか。あとドイツが怒ったとかなんとか。
特にヨーロッパの報道は、アメリカがヨーロッパを侮辱した、上から目線で説教しやがって生意気だ、アメリカがヨーロッパを下に見てウクライナを見捨てることにしたとかいう話ばかり。
が、相変わらず報道ではその演説や発言の全体像が全然伝わってこず、言葉尻の断片ばかりなので、自分で原文を読んでみた。ついでに、きみたちにも読ませてやろう。ほらこれだ。そんな長くないよ。
2025年2月ミュンヘン安全保障会議J・D・ヴァンス米副大統領の発言
……とお膳立てしてやっても、お前らが読まないのは知ってるよ。Executive Summary作ってやったから、エグゼクティブにはほど遠いお前らにも読ませてやろう。
Executive Summary
ヴァンス米副大統領の、2025年ミュンヘン安全保障会議での演説。ヨーロッパの防衛では欧州自身が主体的な役割を果たすべきだが、それ以上に外部の脅威よりも、民主的価値観の後退というヨーロッパ内部の問題を懸念。そんな状態ではまともな同盟はおぼつかないと指摘。特に、言論の自由の制限や政府の検閲、選挙の無効化などの動きを批判した。欧米が共有する価値観を守るために、自由な言論や異なる意見の尊重が不可欠であり、特に移民問題が大きく、エリートが国民の声を踏みにじるようではダメだと戒めた。
また2024年のパネルディスカッションでは以下の点を述べた:
1 2 3 4 5 6 7 8 9ウクライナ支援の限界 – 資金ではなく兵器生産がボトルネック。西側はロシアほどの武器生産能力がない。 和平交渉の必要性 – 武器供給が限られている以上、ウクライナ戦争は交渉による解決しかない。 アメリカの外交優先順位 – ロシアは脅威だが、アメリカが重視するのは東アジア。 ヨーロッパの安全保障の自立 – アメリカは東アジアに注力するからヨーロッパは自分で防衛能力を強化せよ。 脱工業化のリスク – 戦争で重要なのはGDPより工業生産力。ヨーロッパは自国の安全保障強化のためにも工業を維持せよ。
さて、これを見てどう思う? ぼくは非常にもっともなことを言っていると思う。武器弾薬製造能力ないから、ウクライナ支援に限界があるというのは、どこまで本当なのかわからない。そういうところは、それこそミリオタの人や軍事専門家にやってほしい。しかし全体としてそんなに違和感はなかった。これが本当なら、ウクライナを徹底的に応援すべし、というのは、気持はわかるけれど中身のない空論ということになる。これが本当かどうかは是非とも知りたいところ。
演説のほうはヨーロッパのバカチンどもは、自分のお気に召さないからって選挙を勝手に無効にしたり、おえらいエリート様が無知な大衆をフェイクニュースから守るんだと称して検閲を奨励したり、野放図に移民どかどか入れてしかも国内でイスラム移民にばかり配慮して、それが民主主義かよ、そんなことしてるとそもそもこの同盟が何のためかもわからんぞ、と非常に本質的なところをついているし、それはヨーロッパがずっと目を背け続けて、やれ極右だやれポピュリズムだといって逃げてきた話だ。言われてもしかたない。ましてヨーロッパのメディアの反応は、まあここで言われていることが「ああやっぱその通りだねえ」と裏付けるようなものでしかない。
あと戦争は、もうちょっと現実見ようぜ、というのはその通り。もう少しきちんと役割分担しようということで、たぶん日本にもそのうち応分の負担はくるだろうが、正直いってアメリカ信用できないというのであればヨーロッパは (日本も) 自前でがんばる必要はあるわな。
トランプがプーチンの走狗だというのも、一部の人はすぐ言いたがるが必ずしもそうではなさそうだ。プーチンがウクライナ侵略に乗り出したのはバイデンになったから、というのはかなり衆目の一致するところ。トランプはバカすぎて何するかわからん、というマイナスの話であったにしてもね。そして前回のトランプ政権でヨーロッパ (特にメルケルのドイツ) がやったのは、プーチンにすり寄ることだったのも事実。あのとき、このヴァンス的な話をきちんと考えていればねー (最後の、なんでよりによってそのときに脱工業化をするかね、という話も含め)。
ま、これ見て「山形が親トランプになった、ネトウヨめ、反移民のイスラもフォビアめ」とか言い出すやつがいるのはわかっているんだが、そういう愚か者も含め、なるべき自分で読んでくれ。
山形の好きな名言:
でもね、あなたの民主主義が、外国からの数億ドルの広告で破壊されるようなものなら、そもそも大した民主主義じゃなかったのでは?
アメリカの民主主義が、グレタ・トンベリのお説教に十年耐えられたんだから、あなたたちの民主主義だってイーロン・マスクの数ヶ月ほどで死にやしませんって。
特に最初のやつは重要だと思う。フェイクニュースによる民主主義の危機、なんてことをみんな言うけど、本当に問題なのは、フェイクニュースごときで危機にさらされてしまう浅はかな民主主義しか作ってこられなかった社会のほうなのだ。そっちを何とかすべきなのだ。そして、それを口実に選挙を丸ごとキャンセルするなんてことをやること自体が、そういう弱い民主主義をさらに弱体化させてきたのだ。ぼくはそう思うんだがね。
2025-02-13 thu¶
文献史学も考古学も「真実を明らかにする」と言うよりも「今ある手札で過去の社会を復原する」学問だと思う。
前者と後者、似た表現に見えて結構違うと思うが...なかなかこのニュアンスが伝わりにくいのが難点だよな。
これofこれです。私の場合は比較言語学ですが。「真実は何か」を考えるより前に、「真実に到達する方法が我々にあるか」ということを考えなければならないんですよ。ない場合にはできる限り「真実」に近似するという方針に切り替えなければなりません。でも何故か盲点になりがちらしいんだよなあ。
2025-02-12 エスパー魔美「黒い手」¶
藤子F先生は隣人にとても温かい目を向ける一方で,非常にシビアな物事の見方をする方でこの話はそのいい例だと思う。フィクションなのに改心でも気が済むでもない着地。高畑さんの知恵でも解決できないこともあるよという。この話はシビア過ぎてさすがにアニメ化できないよね。 導入でエスパー日記を出したところが上手いよね。たくさんある事件のひとつという体で始まるけどその事件の当事者にとってはワンオブゼムではないんだと冷や水を浴びせられる話。慣れの象徴としてそういうアイテムを出してたという。こういう話がポンと放り込まれるから侮れないよな。侮ってないけど。
2025-02-11 古代ギリシャ語やラテン語のウェブ辞書Logeion¶
古代ギリシャ語やラテン語のウェブ辞書 Logeionはとても便利。まずは以下から覗いてみてください。https://logeion.uchicago.edu アプリ版もあり、こちらではギリシャ語の単語を調べるのに Greek Polytonic のキーボード設定が必要ですが、その準備が整えば出先でも気軽に辞書を引くことができます!
ウェブ版では英語などのアルファベット(ラテン・アルファベット)でもギリシャ語を検索することができます。具体的には、単語の初めの方をラテン・アルファベットで入力すると、ギリシャ語の検索候補が表示されます。α なら a を、β なら b を入力するといった要領ですね。 ちょっと迷いそうなものを、以下に示しておきます。左のギリシャ文字を入力するのに、右のラテン文字を使うということです。 ζ = z / η = h / θ = q / ξ = c / φ = f / χ = x / ψ = y / ω = w 辞書を使えると言葉の世界が広がります。よろしければ皆さんも試してみてください
2025-02-07 男性が「女性の話にはオチが無い」と感じる本当の理由¶
男性が「女性の話にはオチが無い」と感じる本当の理由|めるめる @merumeru99
note https://note.com/merumeru99/n/n4dd9484cd70c?sub_rt=share_pw ¶
これは真に秀逸な記事。盛り場で10年働いて路上やカウンターで有象無象の男女と接客で語り合った結果、僕が行き着いた結論と奇しくも全く一緒。
2025-01¶
2025-01-31 高校に設備科を作ってライフライン技術者を育てる環境を¶
埼玉県八潮市の陥没事故、想定される事
フジテレビを筆頭としたマスゴミの汚職を見てる場合じゃないで.すよ、皆さん。 これとんでもないコトになってますね
最初トラックが落ちた、と聞いて画像を見てたら解りませんでしたが、トラックじゃ無くてロングのユニックですがな・・・このサイズのクルマがズドンと落ちるなんて・・・
しかも吊り込み作業中に飲食店の看板や電柱が落ちるの、これ最初はクレーン車のアームが電線でも引っかけたのかと思いましたが、看板と電柱が沈下するときに、釣り上げ中のユニックの穴から空気が吹き上げてるから、繋がってる、つまりこれ地下全部が陥没してスカスカになってる、ってことで、ただただ驚愕しました
で、現地は幅22m道路、幹線道路ですね。地中に大口径下水幹線や暗渠水路が埋まってる、と
大口径下水幹線になると直径2.5mとかそれくらいはあるだろうけど、それらが潰れたり破裂したところでこの規模の陥没にはならないと思います。 上水道管と違って、加圧はされていないので(流下での高低差による圧力発生はあるでしょうが)吹き上げて土砂・路盤の破壊、ではありません。
となると、下水道管が経年劣化や地震などによって破損、下水が流出した際に近隣の土砂を巻き込み長い時間をかけ、徐々に沈下・流出し、ゆっくりゆっくりと地中で大きな空洞になり、そして表層の耐力がなくなる規模の空洞になった時に、表層・路盤が一気に落下し、舗装を残して・・・というパターンかな、と思います。もしかすると下水管路以外の埋め殺しの水路の下が空洞化していて、宙ぶらりんになっていたものが一気に崩落した、とかもあるかも、です。
どちらにしても、予見は難しいとしても、すべては耐用年数をオーバーし、維持に対してのコストを払ってない、見て見ぬふりをしてきたツケ、と言えるでしょうね
そしてそれらを行う技術者・業者をないがしろにしてきた日本・日本人全体の責任でもあると思います。
いつも偉い方々には「高校に設備科を作ってライフライン技術者を育てる環境を」と訴えていますが、残念ながら理解してもらえてないようで、実現の兆しすらありません。
美麗美句の目標を掲げるのも良いでしょうが、もっと地に足のついた、現実に即したことを、政治家の方々や世の偉い方々には、行ってもらいたいものです。
あ、ぜひシェアをお願いします。 「高校に設備科を」は自分の大きな目標の1つであり、災害大国日本において、絶対必須であること、と思いますので、皆様ご協力を。
「高校に設備科を作ってライフライン技術者を育てる環境を」
インフラの劣化、田舎だと差し迫って恐怖を感じることも多いだけに、なるほどこういうアプローチがあるか…と。
2025-01-30 大阪大学が公開している「世界言語eラーニング」¶
大阪大学が公開している「世界言語eラーニング」がめちゃすごいです。
実に多くの言語を音声・ビデオ・教材と共に各自で学んでいくことができます。言語理解はそのまま文化理解にもつながります。
2025-01-29 東海道中膝栗毛¶
うるせぇな。日本では200年前から仲良し男性カップルが延々旅する話が出版されて売れてんだよ、今でも読める。日本あてに日本語じゃなくて他国に言えやイスラム系とか、何様だ。
ネット時代の良いところは「江戸時代の旅物語」としてしか知られていなかったものが実は「陰間茶屋の売り専ボーイとそれに入れ込んだ若旦那による駆け落ち旅行記」という一部専門家にのみ独占されていた事実が容易に知れることだよな
2025-01-29 リコリスリコイルと平家物語¶
D.Aと錦木千束って未成年秘密警察、赤い制服、おかっぱ(ではないがそれに寄せる)髪型という要素的に平家物語の禿をモチーフにしていると思う。やっぱリコリコって冒頭の語り出しもそうだけど、禿モチーフだったり物語全体が単なる現状の肯定ではなく、自分自身の結論に対する皮肉に溢れてるよ。
ポストの画像の文章は下記.
清盛は、五十一歳の時、出家し、浄海と名乗った。大病にかかったのが、きっかけで、さしもの彼も、少しばかり、気が弱くなったらしい。しかし、たちまち、病は全快、彼はつるつる頭を撫でながら、「まだ当分生きられるぞ」といってほくそ笑んだ。
とにかく、平家一族の繁栄振りは、ちょっと類がなかった。かつての名門の貴族たちにしても、今では、まともに顔も合せられない有様である。
平家に非ずんば人に非ずといった言葉も、むしろ当然のように迎えられたし、六波羅風と言えば、猫も杓子も、右へならえで、鳥帽子の折り方やら、着つけの仕方まで、皆が平家一族を真似するのである。
こういった平氏の専横に対して、不満の声のない方が不思議な位なのだが、そこはそれ、万事、ソツのない清盛入道は、言論弾圧の機関もちゃんと用意していた。いわゆる平家直属の秘密警察とも言えるこの一隊の正体は、十四、五の少年部隊である。髪をお河童に、赤い置帯を着た禿童と呼ばれる面々は、街々の角々で、守した噂ばなしにさえ、聞耳をたてていた。一言でも、平家の悪口なぞ、いおうものなら、たちどころに、家財没収、強制収容の憂き目に会う。今はただ、眼をとじ、耳をおさえ、口をふさいで、人々は、黙々と平家の命に従うばかりである。それを良いことにして、 禿童たちは、京の街々を、我が物顔に歩き廻る。今日の愚連隊どころではない、絶対の権力を背景にしているだけに、それはもっと始末の悪いものだったにちがいない。
リコリコ評、結論が現状肯定すぎるという点は非常に賛同するのだけれど、その結論を無自覚に純真に出したものだと結論づけて批判している人が多いのはあんまり納得してない。やっぱりそういう肯定的な結論と視聴者に対して、作り手からの皮肉な目線が入ってると思う。
2025-01-28 宗教とは何か¶
そもそも「宗教」という概念は人類が時代や地域を超えて抱く普遍的な概念ではなく、近代に創作された新しい概念なんです。この手の話は、「宗教」という概念を疑うことなく自明視すると間違えてしまいます。詳しいことはここに書いたので興味のある方はどうぞ。 #唐突な宣伝
2025-01-27 夫婦別姓と名乗りの自由¶
個人のアイデンティティを担うのは、明らかに「名前」のほうであって、「姓」というものが存在している時点で、それは個人ではなく家族のアイデンティティなんですよね。かりに夫婦別姓になったところで、それは生家のアイデンティティであることに変わりはない。
名乗りの自由を唱えないのが理解に苦しむ
2025-01-26 妊娠から2歳までの「最初の1000日」で栄養不良になると、その後どれだけ栄養をとっても発達や所得への悪影響がリカバリーできない¶
昆虫の多くは、幼虫期にどれだけ栄養を蓄えられたかで成虫時のサイズが決定する。 成虫になってからはどれだけ栄養を摂取しても大きくはならない。
つまり、人間も幼少期にどれだけ食べられたかで成人時のサイズが決まっても不思議ではない(飛躍
これ飛躍ではなくって、妊娠から2歳までの「最初の1000日」で栄養不良になると、その後どれだけ栄養をとっても発達や所得への悪影響がリカバリーできないとわかっています。
学校給食では小児の栄養不良対策として遅すぎることがわかってしまい、今ではあくまで出席率向上のために使われています。
https://jmedj.co.jp/journal/paper/detail.php?id=24679
蟲喰ロトワ (むしくろとわ)同人誌「続け!おいしい昆虫記」昆虫大学(12月21日22日)で販売
拡散して、 書いてないことを読まれているポストもあるので、 このあたりも読んでください。
https://japan-who.or.jp/wp-content/themes/rewho/img/PDF/library/061/book6902.pdf
「最初の1000日」キャンペーンは、 あくまで、保健予算が十分でない途上国を対象に、 限られたリソースをどう分配するかを判断したもので、
日本の保健医療の話、個人の話として そのまま受け止めるのはちょっと気が早いです。
途上国の栄養支援というと、 日本は戦後の脱脂粉乳給食のイメージが強いためか、 今でも給食支援は根強い人気があります。
その一方で、「最初の1000日」 はあまり知られていません。なので知ってほしいのですが、
栄養疫学の結果を基にしているので、 メカニズムははっきりせず、
だからといって、ランダム化比較試験で 子供を低栄養にする実験でメカニズムを探るのは 倫理的にアウトなので、
あくまで途上国の、 絶対的に足りない予算での保健介入を 効率的に行うためのキャンペーン、
と ご理解いただけるとありがたいです。
こちらが本家の「最初の1000日」キャンペーンサイト。
機械翻訳でも読みやすいのでどうぞ。
https://thousanddays.org/updates/category/topic/malnutrition/
2025-01-23 ARグラス Xreal¶
「USB一本繋ぐだけ、専用アプリなしで即画面を空中に置く」。最高。Xreal(nreal)製品はこれまで常用するほどでもなかったが、これまでに無く素晴らしい出来で心の底から常用したい。野心的ながらも「愛用者の誰もが思っていた不満」が解消されている。画質もいい。不満は視野が足りないぐらい。
2025-01-22 百合若大臣とナデシコ劇場版¶
百合若大臣だとパートナーの鷹は死んじゃうんだけどブラックサレナからの装甲パージで現れるエステバリスというのがキモで。まあまあその辺は花言葉を調べていただければ。
- ブラックサレナの花言葉:「恋」「呪い」。
- エステバリスの花言葉:「消しがたい思い出」
2025-01-17 神戸からの支援物資の中に赤ちゃんの服がありました。着替えと思いましたが、津波によって命を奪われた赤ちゃんに、というものでした¶
神戸からの支援物資の中に赤ちゃんの服がありました。着替えと思いましたが、津波によって命を奪われた赤ちゃんに、というものでした。私たちはつらい経験をした皆さんだからこそわかる気持ちによって助けていただきました。 ありがとうございます。 いただいた「希望の灯り」大事にしています。
確かになあ。これは経験者じゃなければ思いつかない支援だ。 親御さんはもう亡くなった子に着替えさせてやりたいとは言い出せないだろう。けれど支援者側がそう書いてくれていれば気後れせずに使える。
2025-01-12 イタリア人がパイナップルのピッツァを食べさせられるより許せないことは!?¶
タイムリーに「イタリア人がスパゲティを折られると怒りを感じる理由」を懇切丁寧に説明した記事が流れてきたけど、
「長いパスタをへし折るのは祖父母からの伝統を侮辱されるも同じ」
っていう「気持ち」を語ってんだよ。
「気持ち」ってこんだけ文化背景に左右される
2025-01-12 分離埋葬法¶
2025-01-09 ウェルズ恵子『おとぎ話はなぜ残酷でハッピーエンドなのか』¶
『砂糖の世界史』などで知られる「岩波ジュニア新書」は、奥深く考えるべきことを平易なことばで届ける、これ以上ない教養書であり、同レーベル最新作『おとぎ話はなぜ残酷でハッピーエンドなのか』はこのことを裏付けます。アメリカの黒人霊歌研究で知られるウェルズ恵子先生による、新たな名作誕生。