このブログは、旧・はてなダイアリー「檜山正幸のキマイラ飼育記 メモ編」(http://d.hatena.ne.jp/m-hiyama-memo/)のデータを移行・保存したものであり、今後(2019年1月以降)更新の予定はありません。

今後の更新は、新しいブログ http://m-hiyama-memo.hatenablog.com/ で行います。

2010-11-01から1ヶ月間の記事一覧

クエリ言語と論理式

MongoQLは、「それはナイダロ」的な意味で面白い。で、だいたい分かったのは、どうも「ドット記法(dot notation)ありき」らしいこと。ドット記法じゃ分かりにくいからフィールドパスとでも呼んでおこう。「フィールパス+値の条件」が原子論理式、しいて言…

CatyQL-N3 クエリ言語の新しい構文(かな?)

N3はNotation3、RDFの構文でN3ってあったような、それの真似。CatyのJSONストレージとクエリ言語 - 檜山正幸のキマイラ飼育記の目次に沿って定義する。最後のほうの結論(?)は結局、N3なんて要らねんじゃね。 二項関係による条件 等号 数値の大小比較 文字列…

unshaffleとクリーネスターの双対

直積と直和の双対性の意味でクリーネスターの双対を書こうとすると、対角Δの直和における対応物が必要になる。それをunshaffleとすると、begin {f | unshuffle | when {1=>pass, 2=> repeat}} がクリーネスターの双対になる。これは一体何に使えるのだろう?

Catyスクリプトの書き方 ナニカと比較編

普通のプログラミング言語との比較逐次実行 A; B // 流すデータがあるなら A | B// 流すデータがないなら A ; B条件分岐 if P then A else B P | when {True=>A, False=>B}条件分岐 if P then A endif // 次にデータを流すなら P | when {True=>A, False=>pa…

何度も繰り返すことをCatyスクリプトで書いてみる

CatyScriptの基本はともかくパイプライン。CatyScriptの変数は、パイプライン・プログラミングの補助的なツールとなる。すべてのデータをパイプラインだけで取り扱う場合、後で使う予定のデータを何もしないで単にパイプライン内を引き回すことになり、これ…

ディレクトリツリー生成をCatyスクリプトで書いてみる

repeatではなくて、普通の再帰を使ってみる。これはスタックフレームを消費する。名前付きコマンドを許してしまうと、repeatがあっても結局コールスタックベースの再帰は必要になる。 type path = string(format=path);type Item = {"name" : string, "isDir…

無限FizzBuzzをCatyスクリプトで書いてみる

CatyScript 2.0 では、メモリ資源(スタック)を消費しない再帰呼び出しを使って、意図的に無限ループを書ける。長時間セルフテスト(マゾテスト)のために無限ループは必要なのだ。で、無限に続くFizzBuzzを書いてみる。実際には整数がラップアラウンドして…

BCP = Best Current Practice 14

http://tools.ietf.org/html/rfc2119 Key words for use in RFCs to Indicate Requirement Levels

そもそもURI構文

"Uniform Resource Identifier (URI): Generic Syntax" というタイトルのRFCは2つある。 RFC2396(1998年発行)http://www.ietf.org/rfc/rfc2396.txt, http://tools.ietf.org/html/rfc2396 RFC3986(2005年発行)http://www.ietf.org/rfc/rfc3986.txt, http:…

Catyと圏論いろいろ

データ領域は実は集合ではない。setoid。だから、ほんとはsetoidの圏を使わないといけない。かなりめんどくさい。 基礎の圏は双デカルト圏であり半環圏である。これは基本のキ。 基礎の圏はskeletalかもしれない。(http://en.wikipedia.org/wiki/Skeleton_%…