タグ

ブックマーク / hiratara.hatenadiary.jp (13)

  • 今日は 圏論勉強会 第1回 の日です - Pixel Pedals of Tomakomai

    圏論勉強会ではない圏論勉強会 第1回に来ました。資料とustreamは公開されています。 @seizans さんより ekmett勉強会でekmettさんが圏論勉強するといいよというから開催 日始まったな 講師 @9_ties さん 圏論だけではなく、圏論を題材に色んなことを学ぶ会 関数型言語を学ぶ会ではない。前提知識はなし 教科書はSteve AwodeyさんのCategory Theory。数学専攻してない人向け 記法などは「圏論の基礎」。数学専攻者向け。リファレンス 今日は、圏論とは何か。随伴までいく 対 → (A, B)とかPair A B (double, double)だと複素数型になる a << 16 | b という自然数もpair 対の具体例はいくらでもある 抽象概念を考えるには、定義が重要 定義を飛ばしては行けない 抽象的な定義。より多くの具体例を持つもの 対P fir

    今日は 圏論勉強会 第1回 の日です - Pixel Pedals of Tomakomai
    joan9
    joan9 2013/05/17
  • 今日はekmett勉強会の日です - Pixel Pedals of Tomakomai

    ekmett勉強会に来ています。ekmettさんがオンライン参加されています。 I love profunctors. They're so easy / liyanghuさん 傘を指し棒に使うと言う斬新なプレゼン。詳細はこちら。 HaskellのFunctorは共変 Predicate (a -> Bool) は Functor ではない (半変)関手ではある Data.Functor.Contravariant contramap g (Predicate p) = Predicate (p . g) 他、Const、Comparison (a -> a -> Ordering)、Op (b -> a)が反変関手 双関手 : 引数を2つとる関手 bimap :: (a -> c) -> (b -> d) -> f a b -> f c d Either、(,)、Biapplicativ

    今日はekmett勉強会の日です - Pixel Pedals of Tomakomai
  • PerlによるFreeモナドの実装 - Pixel Pedals of Tomakomai

    悟りを開けると話題のFreeモナドをPerlで実装した。実装はこちら。 Freeモナドとは? モナドの性質の1つとして、flatten : TTX → TX (または join、またはη)によって重複する関手Tを1つに押しつぶせるという点がある。そのお陰で、TTTTTTXのようにTが複数ある型は考える必要がなく、XとTXという2つの型に限定して計算を考えることができる。が、モナドではない一般の関手Fではこの操作ができない。 じゃあこの操作を普通の関手でもできるようにしてやろうということを考えると自然とFreeモナドが構成できる。直和が定義できる圏であれば、自由モノイドを作るのと同じ要領でモナドを作ればよい。具体的には、関手を適用しない型、1回適用した型、2回適用した型、・・・*1のすべての直和をとる。つまり、TX = X + FX + FFX + FFFX + ... のような関手を作るこ

    PerlによるFreeモナドの実装 - Pixel Pedals of Tomakomai
    joan9
    joan9 2012/10/11
    PerlによるFreeモナドの実装
  • YAPC::ASIA Tokyo 2009 2日目 実況メモ - Pixel Pedals of Tomakomai

    いよいよ最終日です。 今日も、gihyo.jpさんの特集の方と両方に書きます。 今日は、質問をするとDNAボールペンがもらえる(i.e.賄賂)らしいです!! José Castroさん「How regular expressions work internally」 "Hello World" =~ /World/ の例 1文字ずつ、判定箇所を左にずらしていく "Hello World" =~ /Words/ Worまでマッチするが、だめ その後も、orld、rld、... と判定する "abaabbaaabbb" =~ /aa+b+/ 最長マッチしようとする。バックトラッキングする。 "aabb" =~ /a+?b+/; +? は、最短マッチ abb にマッチしないのが重要 "it's 42" =~ /(.*\d+)/ "it's 4"が.*にマッチする "it's 42" =~ /(.

    YAPC::ASIA Tokyo 2009 2日目 実況メモ - Pixel Pedals of Tomakomai
  • 社内勉強会 - Pixel Pedals of Tomakomai

    Moose::RoleはJavaのInterfaceなんかじゃないの内容を社内勉強会でやったので、スライドだけ貼っておきます。 slideshareの貼り方ははてなブログでslideshareのプレゼンテーションflashを貼る方法で教わりました。

    社内勉強会 - Pixel Pedals of Tomakomai
  • LWPとWWW::Mechanizeのバージョンが揃ってなかった - Pixel Pedals of Tomakomai

    不具合が起こったので自分のためのメモ。 現象 $mech->back すると、以降Cookieが飛ばない 原因 LWPとWWW::Mechanizeのバージョンの相性。 LWP:5.825 (16 Feb 2009) WWW::Mechanize:1.34 (10 Dec 2007) Mechanizeを最新にするか、LWPがMechanizeと同じ頃のバージョンになってれば大丈夫です。 備考 この不具合は、後述するようにMechanizeの1.51_01の方針変更によって修正されています。 1.51_01 Thu Nov 6 15:13:03 CST 2008 ======================================== [FIXES] Page history is now working much better. The $mech->back() method

    LWPとWWW::Mechanizeのバージョンが揃ってなかった - Pixel Pedals of Tomakomai
  • TAP::Harnessの出力をPerlから使う - Pixel Pedals of Tomakomai

    CPANにTest::TAP::Modelと言うクラスがあったけど、DEPRECATEDになっていたので、似たようなモジュールであるTAP::Formatter::RawDataを作ってみました。 使い方 使い方はこんな感じです。CPANには上げてないのでgithubのを使って下さい。かなり新しめのTest-Harness(3.15以上)が必要です。 use strict; use warnings; use TAP::Harness; use TAP::Formatter::RawData; # テスト実行 my $formatter = TAP::Formatter::RawData->new; my $harness = TAP::Harness->new({ formatter => $formatter, merge => 1, # if you want to record c

    TAP::Harnessの出力をPerlから使う - Pixel Pedals of Tomakomai
  • perlのテストの仕組み(TAP::Harness) - Pixel Pedals of Tomakomai

    perlのテストフレームワークである、TAP::Harnessの動きを調べました。わかりやすく言えばproveコマンドの中身です。 *.t(予備知識) 説明不要だと思いますが、モジュール開発者が書くテストスクリプトです。個々の*.tは単なるスクリプトで、実行されるとTAPを標準出力へ吐きます。こんなの。 1..2 ok 1 not ok 2TAPを吐くのは、Test.pm とか Test::Moreとかが担当しているお仕事で、TAP::Harnessは何もしないです。 なお、書式さえ守ってればTest.pmやTest::Moreを使わなくても単にprint文で吐いてもOKだったりします。 App::Prove proveコマンドの実装です。引数の解釈とかをして、TAP::Harnessを起動します。 TAP::Harness テストを起動させるruntestsを持っています。runtest

    perlのテストの仕組み(TAP::Harness) - Pixel Pedals of Tomakomai
  • Yokohama.pm テクニカルトーク #3 に参加中 - Pixel Pedals of Tomakomai

    ワタクシは横浜人ですので。 Perl でモンテカルロ法 〜最強の○×ゲームエンジン開発〜(jukuin2000さん) モンテカルロ法の説明 乱数と確率を使う - 扇形の面積を求めるデモモンテカルロ法と扇形の面積の公式を元に、πの値を求めるデモ 人工知能歴史 将棋、チェスはAIが人間を超えつつある 囲碁は人間が断然強い →が、マス数を減らして、AIが勝った == モンテカルロ法 次に打つ手でシミュレートし、勝つ確率がもっとも高い手を選ぶ ○×ゲームで、この手法を実演 モンテカルロ法の利点 ゲーム特有の戦略(必勝法)が全く不要 作成者より強いプログラム、ゲームに詳しくない人でも書ける どんなゲームでも、ルールと終了条件だけ知ってれば後はひたすらシミュレーションするだけ モンテカルロ法が向いてないもの 将棋 → ランダムに打つと、終局しない(シミュレーションを終えにくい) Q. モンテカルロ法

    Yokohama.pm テクニカルトーク #3 に参加中 - Pixel Pedals of Tomakomai
  • LL Future に参加中 - Pixel Pedals of Tomakomai

    電源を確保できたので、*1今日もログ取っておきます。ちなみに、チケットを持ってくるのを忘れましたorz。当日券買ったので二重払いとなりましたが、Larryさんの旅費と言うことで(笑)*2。 基調講演 / Larry Wall さん YAPCの時と同じように、Perl6の文法の話でした*3。 レクサとパーサの自由度とか、Perl6で拡張された正規表現とか、Perl5の文法をきちんと認識してエラーとなるとか。 どうやら、Perl5からPerl6のトランスレータがあるようです。 LL で未来を発明する 英語が聞き取れなくて、Larryさんの発言が大分抜けてます。すみません。 100年後言語がどうなっているか 100年後は言語はないんじゃないか(まつもとさん) 予想は出来ないが、過去の数学の理論が今も生きているように、面白いものは100年後も生き残る(住井さん) 全自動正当証明器とかDSLとか量子

    LL Future に参加中 - Pixel Pedals of Tomakomai
  • YAPC::Asia 2008 Tokyo 2日目 - Pixel Pedals of Tomakomai

    いよいよ最終日です。電池切らさないように頑張ってレポートします(笑)。 You're Doing OO Wrong/Michael Schwernさん(9:50〜10:25) スピーカーの到着遅れてたようです。5分遅れでのスタートです。 継承がオブジェクト指向?→違う Howではなく、その操作から何が得られるかに着目する→インタフェース 継承がなぜよくない? 継承はめちゃめちゃになりやすい←ダイヤモンド継承 注意深く継承するのはつまらない 特徴に応じてクラス分けすると、クラスが増え過ぎてしまう Class::DBI → 色々継承している use Moose 少ないコードで書ける→OO部分だけ書けばいい Mooseでも、機能が欲しいだけでextendsを使うと意味がない→hasを使おう Roleはwithで取り込む まとめ: isa ×、hasa ○、Role ○ 自分でOO実装しないで、M

    YAPC::Asia 2008 Tokyo 2日目 - Pixel Pedals of Tomakomai
  • WEB DB PRESS Tech Meeting レポート (っていうか実況?) - a geek

    WEB+DB PRESS Tech Meeting行ってきましたので、レポートです。資料等後日公開されますので、詳細はそちらをご覧下さい≧(´▽`)≦。 六木はわかりにくいですねー。割と迷いました。 会場は机なしですが、無線LAN有です。ニコニコで配信されるっぽいので、映りたくない人は逃げた方がいいみたいです(笑)。 JavaScript Tips & Technique 天野さん JSの10年間の暗黒時代 FlashもJavaScriptも勝利者 2005年まではFlashの独り勝ち→Ajaxの登場 JSでもできること ラスターグラフィックス (canvasの利用) ベクターグラフィックス (svgやvml) アニメーション (GoogleのOSSのサンプル) 今でもJSでできないこと Sound、Movie、Cross-domain通信 video要素、audio要素、XMLHttp

    WEB DB PRESS Tech Meeting レポート (っていうか実況?) - a geek
  • MMORPGやるくらいならHACKしろ - Pixel Pedals of Tomakomai

    MMORPGとHACKには似た部分がありますよ、と。 RPG的 弱い敵(Hack)と強い敵がいる 敵を倒す(Hackする)たびに経験値が溜まる 豊富な種類のスキル(asm, perl, Haskell, OpenGLとか) レベルあがれば行ける部分(手の出せるHack)が増える 新技術の変遷の陰に意外なストーリー展開(もあるかもしれないw) MMO的 レベルがとことん上がりにくい 人生全て費やしても遊びきれないくらいのボリューム みんなで意見交換しながら遊んでも楽しい ソロでも遊べる 気をつけないと廃人になる 最強レベルになればかなり自慢出来るよ 同じ時間の浪費なら、是非今後の職の役にもたつHackingを!

    MMORPGやるくらいならHACKしろ - Pixel Pedals of Tomakomai
  • 1