関数のカリー化とSNSでの発信

先日、竹内(@rikson_en)が新しいブログ記事をアップしていて、さっそく読ませてもらった。

今回のテーマは「関数のカリー化」とか「FPTS」といった、いわゆる関数型プログラミングの要素をTypeScriptに応用する話だ。 もともと彼がバリデーションのエラーメッセージを表示するとき、「引数として同じラベルの値を複数のバリデーション関数に渡すのが面倒だ」という問題意識を持っていたらしく、それを“カリー化”で解決したというのが主旨らしい。

読んでみたところ、一つひとつのバリデーション関数にラベルを渡す代わりに、多変数の関数をカリー化しておくことで、柔軟に引数を与えたり合成したりできる点がポイントのようだ。 カリー化を実行すると、一度にすべての引数を渡すだけではなく、たとえば「先に2つの引数だけ与え、その後にもう2つの引数を渡す」という呼び出し方が可能になる。 これが、バリデーションの場面でも引数の分割が自由になって便利だと書かれていた。

ただし、FPTSのような関数型ライブラリを本格的に使おうとすると、モナドだのEitherだのといった、なじみのない概念が一気に押し寄せてくるため、 チームで導入するには相応の学習コストが必要となる。

JavaScriptで手続き的にサクッと書いてしまったほうが楽なケースも多いし、あまり高い抽象化を導入するとコード量が増えてしまうのも事実。いっそ関数型言語を利用してしまった方がしっくりくるかもしれないが、それでも環境構築や周囲の理解が要るから悩ましいところだと感じた。

話の流れで、ブログや技術ネタの拡散手段としてSNSが出たが、どうも僕はあまり積極的に使ってこなかった。

昔、趣味で作っていた弁当をインスタグラムに投稿したりしたものの、特に反応を得られたわけでもなく、「ただの自己管理アプリみたいな使い方だったな」と今では思う。

竹内のほうもSNSを通じて大きく発信したいかというと、どうやらそうでもないらしい。
とはいえ、「We Are On The Way」というPodcastをもっと知ってもらうために、Twitter(いまはXだけど)やThreads、あるいはYouTubeのアルゴリズムなどを活用できないかと雑談していた。
実際、YouTubeが思いがけない形で関連動画に出してくれたりするらしく、とりあえず動画を上げておけばそれなりに露出は増えるのかもしれない。

いろいろなSNSが存在するのに、日本で盛り上がるものと海外でヒットするものは必ずしも一致しないらしい。
Facebookが東南アジアでは圧倒的に使われていたり、逆に日本ではビジネス寄りの人が使っている印象が強かったり。ThreadsやBlueskyといった新興サービスも話題になったわりには、みんな結局Twitter/Xに戻っている節がある。ネットゲームでも同じで、結局「みんなが集まっている場所」に人が集約されがちなのだろう。

そんなこんなで、今回は竹内のブログ記事の余談をあれこれ話すだけでもけっこう盛り上がってしまった。
関数のカリー化に始まり、関数型ライブラリの導入、SNSでの発信、そしてPodcastの地道な配信スタイルに至るまで、すべてが次につながるネタになるかもしれない。

いつかは僕も、カリー化やEitherモナドにがっつり取り組む日が来るかもしれないし、SNSで弁当以外の面白い発信をするかもしれない。とりあえず今は、竹内のブログ記事をちらっと読んで「なるほど、こんなに凝ったコードを書いているのか」と感心しながら、Podcastもこのまま続けていこうと思っている。気軽な移動中雑談から生まれるネタは意外に馬鹿にできないし、それをどう形にするかは今後の僕ら次第だ。