タグ

ブックマーク / m-hiyama.hatenablog.com (5)

  • メイヤー先生の偉大さとCommand-Query分離 - 檜山正幸のキマイラ飼育記 (はてなBlog)

    バートランド・メイヤー(Bertrand Meyer)先生は、とにかく偉大です。局所的には、無理筋な例え話や強引な主張で僕らを笑わしてくれるのですが、全体としては実にまったく正しいことを言っています。 メイヤー先生の主張のなかでも、僕がもっとも影響を受けて、はてしなく役立っているのは「Command-Query分離の原則」です。オブジェクトやシステムのインターフェイス&実装を「CommandとQueryに分けろよ」という提案。Commandは値を持たず、副作用(つうか、主作用だけど)だけを持ちます。Queryは副作用を持たず値だけを返します。 Commandとは何であるか、Queryとは何であるか、副作用を持つ/持たないとは何であるか -- これらの概念は、日常直感に頼るだけではなくて、正確に定義することができます。 Queryが副作用を持たないことから、同じQueryを二度発行すると、同

    メイヤー先生の偉大さとCommand-Query分離 - 檜山正幸のキマイラ飼育記 (はてなBlog)
  • MongoDBのmongoimportでハマった:変なJSON形式 - 檜山正幸のキマイラ飼育記 (はてなBlog)

    MongoDBにデータを入れるために、mongoimportというコマンドがあります。使ってみることにしました。 コマンドラインには、データベース名、コレクション名、ファイルの形式、ファイルを指定します。JSON形式のファイルからコレクションにデータをインポートすることにします。 mongoimport --db test --collection a --type json --file data.json テストに次のような簡単なJSONデータを準備しました。 [ {"x": 1, "y": 2}, {"x": 3, "y": 5} ] Failure parsing JSON string near: [ はぁ? 正しいJSONデータのはずだが? ブラケット('[')でパーズエラーとか言っているので、ブラケットをはずしてみました。 {"x": 1, "y": 2}, {"x": 3,

    MongoDBのmongoimportでハマった:変なJSON形式 - 檜山正幸のキマイラ飼育記 (はてなBlog)
    gomi_ningen
    gomi_ningen 2015/02/12
    同じハマりかたした...
  • 型推論に関わる論理の概念と用語 その5:型付けの簡単な例から型判断へ - 檜山正幸のキマイラ飼育記 (はてなBlog)

    このシリーズの「その2」で不平不満を言い、「その3」で実例を挙げたことですが、型推論に関わる用語法は混乱を招くものです。論理をある程度知っているが型推論の用語を知らない人と、型推論に詳しいが普通の論理に馴染みがない人が話をしたら、ほとんど話が通じないでしょう。外国語にようにまったく通じないならまだいいのですが、お互いに自分の知識で解釈しようとしたら、とんでもないカオスになるでしょう。 プログラミング言語の常識からの類推も通用しません。「型宣言」なら知っていても、型注釈や型コンテキストと言われたら何のことかわかりません。多相型という言葉にしても、オブジェクト指向の人々が持っている多相のイメージとは(無関係とは言わないにしても)かけ離れているでしょう。 そんな事情でして、「型推論」の「推論」がそもそも論理で言う「推論」とは違ったりしています。論理で推論というと、演繹系の推論規則、またはその推論

    型推論に関わる論理の概念と用語 その5:型付けの簡単な例から型判断へ - 檜山正幸のキマイラ飼育記 (はてなBlog)
  • 圏論番外:集合ベースの直積と直和 - 檜山正幸のキマイラ飼育記 (はてなBlog)

    入門シリーズは途絶えて久しい、「番外」記事ばっか。… ^^; 集合圏はよくSetと書き表しますが、これは、単に「対象が集合である圏」というだけでなくて、射が写像(関数)であることも一緒に表しているのです。対象として集合を採用しても、射が異なればまったく別な圏になります。 対象が集合であって、射が部分写像(partial map)である圏をPSet(Pはpartialから)、対象が集合であって、射が関係(relation)である圏をRelとしましょう*1。対象だけを考えれば、|Set| = |PSet| = |Rel| となります。しかしもちろん、これらはまったく違った圏です。 これら3つの圏Set, PSet, Relで、集合の直積と直和が圏論的な直積と直和になるかどうかを調べてみましょう。この3つのうちのどの圏でも、対象が集合ですから、普通に集合の直積と直和は作れます。それが、圏の直積/

    圏論番外:集合ベースの直積と直和 - 檜山正幸のキマイラ飼育記 (はてなBlog)
  • はじめての圏論 その第1歩:しりとりの圏 - 檜山正幸のキマイラ飼育記

    全体目次: 第1歩:しりとりの圏 (このエントリー) 第2歩:行列の圏 第3歩:極端な圏達 第4歩:部分圏 第5歩:変換キューの圏 第6歩:有限変換キューと半圏 第7歩:アミダの圏 第8歩:順序集合の埋め込み表現 第9歩:基に戻って、圏論感覚を養うハナシとか 付録/番外など: 中間付録A:絵を描いてみた 番外:同期/非同期の結合 中間付録B:アミダとブレイド 番外:米田の補題に向けてのオシャベリ 一部のプログラミング言語の背景として、圏論(カテゴリー論)が使われたりするせいか、以前に比べれば多少は圏論に興味を持つ人が増えたような気がしなくもないような。でも、安直な入門的文書はあまり見かけないですね。もちろん、シッカリした教科書や論説はあるんですが、どうもシッカリし過ぎているような。例えば、圏の例として「コンパクト・ハウスドルフ空間と連続写像の圏」とか言われてもねぇ(この例はいい例なんです

    はじめての圏論 その第1歩:しりとりの圏 - 檜山正幸のキマイラ飼育記
  • 1