♪ プロフィール(運営者情報)

関数型プログラミング言語Haskellを趣味でやっています。このブログで紹介しているPDFリーダーは休日等に少しずつ作ってきました。

このPDFリーダーは、プログラミング教育で使うのが良いと最近分かってきました。自分のつくったPDFリーダーで教科書を読む、もっといい感じで読めるようにそのリーダーを使ってプログラミングを勉強する、PDFリーダーを強化する、といった自然な循環ができると思います(※0)。

 Haskellの勉強会(https://polymony.net/2019/12/20/post-2631/)を開催しています。興味のある方は参加してみてください。資料も公開していきます(※5)。

また、プログラミング教育以外の文脈では、「速読の通用しない手ごわい文書」の速読に使えることも分かっています。

現在はHaskellの他に、Agdaという言語を触り始めました。定理証明の自動化とかもそうですが、現在主流の機械学習的なA.I.ではなく、別路線のA.I.とかやれそうな気がしています(※1)。

Agdaによる発見的定理自動証明技術が確立されれば、Haskell等の関数型プログラミングが主流になるかも知れません(※2)。

よろしくお願いします(※4)。

mailto:polymonyrks@polymony.net

 (※0)停止しないたぐいの再帰ですね。プログラミングの教科書以外にも当然適用可能です(下記は、歴史関係の文章に適用したものです)。

(※2)Haskellの強みについては、色々な人たちが語られているので、ここではそれ以上触れませんが、やっぱり速度が弱点と見ています。気にし始めるとスマートに書けないです。PDFリーダーもGUIと画像周りは結構気にしながら書いています。GUIはFRP(Functional Reactive Programming)で最初は書いていましたが速度が出なくて止めました(※3)。Agda(証明支援系)関連技術が発展し、違う実装でも同じ結果となる(例えばソート(並び替え)とか)ことが自動証明されたり、そういう他の実装を自動で発見してきてくれたり、みたいになれば状況が代わるのでしょうね。

(※3)HaskellのFRPのライブラリとして利用したのはjavascriptのコードを生成する類のものです。画像を描画するという点では少し速度が追いつかなかったです(私の知識が足りないだけなのかも知れません)。なのでGtkにしました。やっぱりC++は速いなという印象です。こちらも早く極めたいです。FFIも覚えればもっと色々やれそうです。

 

 

(※4)当ブログでの活動を端的に英語で説明することを試みました。英語なのは、視認性向上のための着色は日本語よりも英語の方が効果が高い点を考慮しました。

We make some toy programs in Haskell. The current one is a viewer for PDF Documents, characterized by ad hoc coloring of noun phrases for fast and accurate reading. There are another suitable(but invisible) delimiters for such reading other than visible spaces.

We find that this viewer is especially useful for, among others, reviewing papers, text books and/or legal documents.

We need cooperators for future development.

(※5)

以下は、勉強会開催のモチベーションについての私の優等生的なポエムです。

2年くらい趣味のガジェット(この勉強会で題材とする電子文書リーダー)の開発をHaskellで行っていましたが、毎日本当に楽しかったです。

周辺分野含め、これをきっかけに(モチベーションにして)色々勉強になりました。自分以外の人にも、この面白さをシェアしたいです。

自分も動画でHaskell関連の勉強会をみて勉強しました。例えば以下の2つの動画が本当にためになりました。田舎に住んでいる身としては、こういうのを動画で公開していただけるのは本当にありがたい限りです。
以下、ご紹介です。


1.圏論勉強会


私は、この動画でHaskellを知りました。Haskell自体がというより、圏論という数学の抽象性に感動したのを憶えています。
違うものが同じに見える。冒頭に挙げた方程式的な、広い視点での見通し、そんな見方があるんだ、と。

2.OPLSS (Licataさん)

Dan LicataさんとIan Voysayさんのプログラミング言語Agdaの講義です。
Agdaの背景にある理論とともに、講義中で実際にプログラミングしている様子が公開されています。

自分はこの講師の人たちのレベルではないですが、
是非、これらをきっかけに学んだことを他の人にも伝えたい、と思いました。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする