JuliaのDocumentationについて

ガーシー氏:始めさせていただきます。今回は「JuliaのDocumentationについて」ということで、Jupyter使ってるので、Juliaで無駄にMarkdownを書いてレンダリングしてるスライドになってます。

こんなアイコンでだいたい活動していて、アカウント名はこんな感じです。僕はJuliaを使い始めて1年くらいで、今月名古屋から東京に転勤してきました。

名古屋で「機械学習名古屋」に参加したときに、最初に発表してくださったantimon2さんがJuliaの発表をしていて、「すごいおもしろい言語だ」と思って使い始めました。ふだんはWebの開発をしてます。

みなさんJulia開発するときってドキュメンテーション書いてますか?

(会場挙手)

そんなに……。パッケージを作られるときはたぶん書くものかなと思うんですけど。ドキュメンテーションは、例えばこういう関数を作るときこんなふうに文字列で書くと。

よくヘルプで呼び出すときの内容が吐き出されます。

さっきのコメントのところが、Juliaでドキュメンテーションと呼ばれるものです。例えば「+」のsearchで見てみると、こういう結果が返ってきます。

ここで中身の関数や型がどういうものを表してるのかを説明してくれます。

関数の、いわゆるドキュメンテーションコメントは、もともとコード中にただコメントを書くだけでした。

Juliaのドキュメンテーションでできること

最初Pythonを使い始めて、PythonだとStringっていう概念で、それが文字列として返ってきて使えて、おもしろいと思っていたんですけど。

JuliaはなんとMarkdownで返ってきました。

さっきも「+」で見たときMarkdownでこう返ってきてました。なんかすごくオシャレで見やすい。

ここもMarkdownのドキュメンテーションなんですけど、Fieldsのcontentの中にMarkdownのrawテキストみたいなのが入っています。

ここだとArrayで2-elementって書いてあるんですけど、「+」だとこのドキュメンテーションは2ヶ所。Juliaは多重ディスパッチがあるので、それで複数の定義箇所から持って来てるので2つあります。

変数にも付けられます。変数に定義してドキュメンテーションコメントを書いていると、ヘルプでその変数のときも引いてくることができます。

関数以外にも付けられておもしろいなぁと思いました。

HTMLでも書けます。実際にこういうスクリプトを埋め込んだコメントを書いて、ヘルプを引くと……。まぁアラートが出てしまうんですけど(笑)。

(会場笑)

異質なコメントですね。

HTML全般も書ける

HTMLも全般書けるので、iframeとかも、僕の公式ホームページもレンダリングできます(笑)。

つまりiframe対策をこのWebサイトはしてないということです。

ちゃんとした使い方の例としては、TeXも書けるのでこういう感じでシグモイド関数を定義するときに、元の数式を定義しておきます。

画像もこういう感じで埋め込めるので「それがどういう特性を表しているのか」がけっこう見やすくなります。

ドキュメンテーションを動的に生成することもできます。

こういう数式を定義するような型を作っておいて、そこにgetdocのところで返ってくるドキュメンテーションの定義を置きます。

TeXの数式と実際の関数と画像を渡しておくと、さっきの型でインスタンスを生成したとき、ヘルプでこういうふうに(表示されます)。

いろんな数式を実装するときに使い回すこともできます。

時間になったので、これで終わります。ありがとうございます。

(会場拍手)