2015年10月31日土曜日

圏論 P17

3 Cの射の圏 C→ はCの射を対象としてもち、f:A→B から f’:A’→B’へのC→の射gは
 可換正方形
        g1
       A→A’
      f ↓ ↓f’
       B→B’
        g2
である。ここで、g1とg2はCの射である。すなわち、このような射はCの射の対g=(g1,g2)であり
  g2・f=f'・g1
をみたす。 対象f:A→B上の恒等射1fは対(1A,1B)である。射の合成は成分ごと行われる。
      (h1,h2)・(g1,g2)=(h1・g1,h2・g2)
 適切な可換図式が描くことにより、これがうまくいくことを確かめよ。

        g1  h1
       A→A’→A''
      f ↓ ↓f’ ↓f''
       B→B’→B''
        g2  h2

g=(g1,g2)とh=(h1,h2)はC→の射で、C→の対象は、f,f',f''  といったところか?

  二つの関手が存在することをみてほしい。
             dom    cod
           C ←  C→ → C

  ちょっと違うかもしれないけれど、たとえばニュアンスとしてはこんな感じだろうか?
 cod(g:f→f')=cod(g):cod(f)→cod(f')=g2:B→B'
  dom(g:f→f')=dom(g):dom(f)→dom(f')=g1:A→A'

 


2015年10月29日木曜日

圏論 原著第2版 P15

圏論のさわりを少し読んでみた。群論の抽象度をさらに上げたもの という感じだろうか、はっきりいってわかりにくい。読み始めてさっそく最初のほうでつまづく。

Th1.6 射の集合を伴うすべての圏対象が集合であり、射が写像である圏に同型である。
∵(概要)Cのケイリー表現Cを次の具象的な圏として定義せよ
・対象は、∀C∈に対して     ={f∈|cod(f)=C} という形の集合である。
・射は、 Cのg:C→D に対する写像  CD であり
  C∋∀f:X→C に対して(f)=g・f により定義される。
   X
  f↓ ↘g・f  
   C→D
    g

 D={射∈C|cod(射)=D} この射に該当するのはg・fということ?
 CDは、射(写像)や対象(集合)は、いわゆるケイリー表現と呼ばれるもののようだ。
 CDは 実際は射の集合で その写像がということだろうか?

ケイリー表現というのは、すべての要素g∈Gに対して、置換:G→Gを得ることができることを意味する


2015年10月26日月曜日

Acrobits Softphone

スマホのネット電話はバッテリー消費が多くて、間歇動作させていたが、やはり不便さは残る。
 何かいい方法はないかと、ソフトを探していたらAcrobits Softphoneというアプリを見つけた。これだと、待ち受け時のバッテリー消費がかなり抑えられており、ネット電話には最適なようだ。バッテリーの持ちが非常によくなり、待ち受けだけなら充電なしで数日程度は持つことになる。
 699円と有料であるが、バッテリー対策がされている最新機種に買い替えることに比べれば少ない投資である。

2015年10月19日月曜日

圏論勉強会(YouTube)

Youtubeで、圏論勉強会の動画があったので、見てみた。ネットで読むより概観、イメージがつかみやすい。Haskellも使いながら圏論の初歩との関連を説明してくれている。細かいところでまだまだ理解不足のところもあるけれど、書籍などいきなり読むよりは入りやすい気がします。
第一回:対、AND集合、最小値などがじつは圏論では共通性があるということなど興味深く拝聴させていただきました。最後のほうで函手、自然変換などの説明があります。
第二回:モノイドについての説明です。最初のほうでfoldmap、endomorphismについて説明しています。各回は2時間、連続聴講はちょっときつい。とりあえず、今回は半分程度視聴して終わり。

2015年10月14日水曜日

Windowsサーバでアクセス制限をバッチファイルで一括処理

NFTSアクセス制限は、GUIでも設定できるが、一括処理はやはり、バッチファイルの利用が効率的である。
エクセル等で、編集してテキスト保存したものをバッチファイルで利用するといいようだ。
たとえば、
echo y|cacls d:\test /E /P username:W
などとすれば、testフォルダに対して、特定のユーザーの書き込み権限を与えられる。

2015年10月11日日曜日

LINQについて

.NETではLINQが使え、関数型プログラミングに近いことができるようになっている。
http://yohshiy.blog.fc2.com/blog-entry-274.html
を参考にさせていただくと
scalaやHaskellなどと変わりなく、カリー化、遅延処理、map,foldといった機能がそろっていることがよくわかります。
ということは、完全とはいかないまでもscalaやHaskellでなくても、.NETで関数型っぽいプログラミングが、ある程度できるということになりそうです。
ただ、副作用のないものにするということには注意しなければならないのだと思いますが。。
そこまで意識がいくまでにはもう少し修行が必要なようです。