作成者別アーカイブ: mod_poppo

アプリカティブ関手ってなに?モノイド圏との関係は?調べてみました!

この記事は Category Theory Advent Calendar 2018 7日目 かつ Haskell (その2) Advent Calendar 2018 7日目の記事です。

Category Theory Advent Calendar 2018の6日目はcorollary2525さんの「随伴は あらゆるところに 現れる」、8日目は空席、9日目はt_uemura669101さんの「トポスと高階論理」です。

Haskell (その2) Advent Calendar 2018の6日目は空席、8日目はtakoeight0821さんの「Type defaultingについての初級的な解説」です。

この記事はどういう記事か

圏論の方から来た人向け:

デカルト積やテンソル積の一般化である「モノイド積」の話と、「内部ホム」の話をします。文献によっては内部ホムはモノイド積の右随伴として導入されますが、ここではモノイド構造を仮定せずに内部ホムの定式化(閉圏)をします。

Haskellの方から来た人向け:

この記事ではHaskellにおけるアプリカティブ関手の使い方は解説しません。Haskellの方から来た読者はすでにアプリカティブ関手をある程度知っており、圏論的な話にチョット興味がある、と仮定します。

これを読めば、「モナドは自己関手の圏におけるモノイド対象だよ、何か問題でも?」と同じノリで「アプリカティブ関手はモノイド圏における強laxモノイド関手だよ、何か問題でも?」と言って他人を煙に巻くことができます。 続きを読む

LaTeX処理自動化ツール ClutTeX をリリースした

2年ほど前からマイペースで作っていたLaTeX処理自動化ツールClutTeXだが、ある程度の機能が整ったと判断し、バージョン0.1をリリースした。ClutTeXに関しては2年前にもブログ記事で紹介したが、初のリリースを迎えた今、改めてその機能と使い方を紹介する。 続きを読む

技術書典5に初サークル参加した記録/当日

技術書典5の当日編。

前日までの話はこっち:技術書典5に初サークル参加した記録/前日まで

原稿の内容・技術面に関してはこっち:同人誌「代数的数を作る」ができるまで/PandocとかLaTeXの話

当日会場に来れなかったという方は、BOOTHで電子版(PDF版)を購入可能です:

代数的数を作る 多項式の根と因数分解のアルゴリズム – だめぽラボ – BOOTH(同人誌通販・ダウンロード)

続きを読む

同人誌「代数的数を作る」ができるまで/PandocとかLaTeXの話

前の記事「技術書典5に初サークル参加した記録/前日まで」は、サークル参加と紙書籍配布を軸に色々書いたが、この記事ではコンテンツである「週刊 代数的実数を作る」からの「代数的数を作る」の流れと、執筆に使った技術について色々書く。

執筆に使った技術(Pandoc filter等)について気になるものがあれば、コメント欄に書き込んでもらえれば別途詳細な記事を書くかもしれない。 続きを読む

技術書典5に初サークル参加した記録/前日まで

前回の記事で告知したように、10月8日に池袋サンシャインシティーで開かれた技術系同人誌即売会「技術書典5」に、「だめぽラボ」としてサークル参加した。

この記事ではその経過と判断を、日記に近い形でまとめておく。この記事には前日までの分を書き、当日の実際の売れ行きは別の記事に書く。また、冊子の内容や技術的な話(PandocやLaTeXの話)もこの記事には書かず、別の記事に書く。 続きを読む

微分の連鎖律と関手性

最近(ここ半世紀くらい)圏論が流行りですね。しかし圏論は抽象的で、具体例や圏論の言葉を使うことによるメリットが見えないと、なかなかとっつき難いかもしれません。

この記事では、高校数学に出てくるアレが、実は圏論の言葉でスッキリ(?)表せることを見てみます。

予備知識:高校数学、若干の圏論、あとは多変数の微分の知識があればなお良い 続きを読む

SML、はじめました

動機

プログラマーの3大欲求と言えば「プログラミング言語(処理系)を作りたい」「テキストエディターを作りたい」「OSを作りたい」である。これらの欲求は定期的に湧いてきて、多くの場合は実を結ぶことなく霧消する。

そんなわけで先日、筆者にもプログラミング言語の処理系を作りたい欲求が湧いてきた。

具体的には、ML系の型推論を持った言語を作りたい。また、エフェクト推論・リージョン推論のような技法を試したい(一旦普通に処理系を作り、その後に改造してエフェクト推論やリージョン推論を試す)。

別の方向性の動機として、型のないスクリプト言語(具体的にはLua)で大きなソフトウェアを書くのがだるい。静的型のついた言語からスクリプト言語にコンパイル(トランスパイル)するやつを作りたい、というものがある。

最近はJavaScriptへトランスパイルする処理系は色々登場したが、それ以外のスクリプト言語を吐き出す処理系というのはまだ少ないように思う。

これらの動機付けが混ざった結果、「型推論のある言語からスクリプト言語へのコンパイラーを作れば良い」という結論に至った。 続きを読む