Pixel Pedals of Tomakomai

北海道苫小牧市出身の初老の日常

2013-01-01から1年間の記事一覧

自由マグマを自由対象の定義の図で書くと

圏論勉強会 第3回の自由対象で悲鳴が上がってたようなので、参考までに図に書いて説明しておく。まず、マグマと自由マグマを以下のように定義する(というか、勉強会においてこう定義していた)。 class Magma a where magappend :: a -> a -> a data FreeMagm…

自由モノイドとFreeモナド

以前、モナドは自己関手圏におけるモノイドであるという話をしたことがあるのだけど、この時は理解が足りなくてFreeモナドにまで踏み込めなかった。今日調べていたら、Free Monoid Objectsというわかりやすいエントリを見つけたので簡単に紹介。まず、以前の…

今日は 圏論勉強会 第2回 の日です

圏論勉強会ではないモノイド勉・・・いや、圏論勉強会 第2回に来ました。資料とustreamは公開されています。 第2回: モノイド・群 / 講師 @9_ties さん モノイド、圏は計算機に必要な概念 対象が1つの圏。シンプルだけどシンプル過ぎない圏 約束: 自然数は0…

fmap head VS sequence

sequenceを使えば、複数個あるモナド値を1つのモナド値に集められる。 xs :: (Functor m, Monad m) => m [()] xs = sequence [return x' | x' <- [(),()..]] xsはモナドに包まったリストなので、fmapを使ってheadを持ち上げれば先頭要素がとれる。 x :: (Fun…

今日は 圏論勉強会 第1回 の日です

圏論勉強会ではない圏論勉強会 第1回に来ました。資料とustreamは公開されています。 @seizans さんより ekmett勉強会でekmettさんが圏論勉強するといいよというから開催 日本始まったな 講師 @9_ties さん 圏論だけではなく、圏論を題材に色んなことを学ぶ…

スツルムの定理の直感的な解説

昨日の計算機代数勉強会で代数的実数の実装のために出てきたスツルムの定理、共立出版の数値解析でも近似値の算出に使っており、証明も詳しく載っている。互除法だけではなく3重対角行列の主小行列式がスツルム列をなすことを使って固有値の算出をしたりもし…

今日は Haskellで計算機代数勉強会 の日です

せっかくのGWなので、朝からHaskellで計算機代数勉強会に来ています。内容が内容なので正確性は保証できませんが、自分用のメモということで。 HALでもわかるGröbner基底 / @mr_konn さん グレブナー基底 高次連立方程式、初等幾何、統計ロボティクス、計算…

第2回Tech Compassへ行ってきた

マイナビさん主催の勉強会に参加してレポートを書いてきました。イベントの詳細は以下からどうぞ。 閑歳孝子(@kansai_takako)氏と和田裕介(@yusukebe)氏をプレゼンターとして招き、人気のあるWebサービスはどのように作られるのかというテーマでディスカッシ…

今日は「データベースは圏なんだよ!の会」の日です

中原市民館に来ております。データベースは圏なんだそうです。SGL読書会の姉妹イベントです。 Databases are categories by Spivakさん / @bonotakeさん Spivakさんのスライドの解説です。 情報の世界の coherence の欠如を解決するためにフレームワークが必…

QAハッカソンでTest::BangAwayってモジュール書いた

Perl QA Hackathon 2013 Satellite at Tokyo なるものに参加してきた。こういうイベントで貢献できるガラではないのだけど、開催場所が自分の職場だったのでお邪魔させてもらった。MillaとMinilla周りの話題が熱い中、前々から作ってみたかったQuickCheckも…

"圏論とかモナドなんて簡単だからscalaを使って説明してみた"を検証してみた

射っていうのはscalaだと単なる関数だし、関手はmap、モナドはflatMapなだけです。これのどこが難しいというのでしょう。圏論とかモナドなんて簡単だからscalaを使って説明してみた 内容について考えてみよう。 圏の定義? trait Cat { type A type B def f:…

今日はekmett勉強会の日です

ekmett勉強会に来ています。ekmettさんがオンライン参加されています。 I love profunctors. They're so easy / liyanghuさん 傘を指し棒に使うと言う斬新なプレゼン。詳細はこちら。 HaskellのFunctorは共変 Predicate (a -> Bool) は Functor ではない (半…

第1回Tech Compassへ行ってきた

マイナビさん主催の勉強会に参加してレポートを書いてきました。イベントの詳細は以下からどうぞ。 3月19日に竹橋で開催された第1回Tech Compassでは、伊藤直也(@naoya_ito)氏と山本裕介(@yusuke)氏をプレゼンターとして招き、このテーマで議論がなされた。…

今日は Hokkaido.pm#9 の日です

実家に帰るついでに、久々にHokkaido.pmへふらっと立ち寄ります。マイクスタンドを借りたのでライブコーディングでも安心です。 cpanfile / @aloelight さん cpanファイルとは? Ruby Gemfileの移植 依存モジュールのバージョン cpanmとcartonで利用可能 ア…

Class::Accessor::TrackDirty っての書いた

KVMにハッシュ的なデータ構造出し入れするのに、O/Rマッパーのエンティティみたいにプロパティが変わったかを追っかけて必要なときだけ保存したかったんだけど、良さげなのを見つけられなかったので自分で Class::Accessor::TrackDirty て名前のClass::Acces…

Parsecのソースちら見(1)〜(3)

Parsecのソース読んでQiitaにメモった。 Parsecのソースちら見 Parsecのソースちら見(2) Parsecのソースちら見(3) 最初に全体構造さえ掴めれば比較的読みやすい内容。 let ... in がhaskellにしては多いのかなと思ったのだけど*1、もしかすると作ってるのOCa…

((weak )?head )?normal formの違いってなんなの

以下、拾い読みした感じこうなのかなあってのを書いただけだからあってるのかよく知らない。例えば簡約前がこうだとすると、 (λxy.(λz.y((λu.u)z))x)vweak head normal form はλ抽象された中身のλ式は簡約しなくてよい。 λy.(λz.y((λu.u)z))vhead normal for…

擬リスト

最近関数プログミラング入門を読んでるのだけど、擬リストって概念が新鮮だったのでメモ。 関数プログラミング入門 ―Haskellで学ぶ原理と技法―Richard Bird 山下伸夫 予備知識 擬リストの話をするのに必要な概念がボトムとか正格性とか。ボトムとは値の1つで…