タグ

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

  • パイプライン指向JSON処理プログラミング言語 jq - 檜山正幸のキマイラ飼育記 (はてなBlog)

    jq(https://stedolan.github.io/jq/)の紹介では、「JSON処理のワンライナー〈一行野郎〉としてめちゃくちゃ便利!」とアピールするのが定番です。もちろんそれは当で、「めちゃくちゃ便利!」です。が、実は jq は、ワンライナー記述にとどまらない、かなり格的なプログラミング言語です。 JSON処理のためのDSL〈Domain Specific Language | 領域特化言語〉なので、汎用言語ではありません。しかし、汎用言語が備えている言語機能の一部(関数定義、モジュールシステムなど)を jq も持っています。また jq は、独特で楽しいプログラミング・パラダイム -- “パイプライン指向”に基づいて設計されています。 この記事では、ワンライナーを超えた jq の使い方と、プログラミング言語としての jq の特徴を紹介します。長い記事になってしまったので、一

    パイプライン指向JSON処理プログラミング言語 jq - 檜山正幸のキマイラ飼育記 (はてなBlog)
  • 主キー/外部キーなんてドーデモイイ - 檜山正幸のキマイラ飼育記 (はてなBlog)

    土曜日の「データベースは圏なんだよ!の会」(hirataraさんのメモ)で、「主キー/外部キーなんてドーデモイイでしょ」的なことを言ったので、「どういう観点ならドーデモヨク見えるのか」を補足しておきます。別な観点からはドーデモヨクナイでしょうが、そういう別な観点を否定するものではありません*1。 以下の話は、集合圏に関する練習問題にもなっています。モノ射とプルバックの定義を確認して、集合圏のなかで具体的に考えてみてください。手を動かして具体的に追いかければ、ドーデモヨサが実感できるはずです*2。 Cは集合圏の部分圏としまします。したがって、Cの対象は集合で射は写像です。データベースを考える文脈では、Cは有限個の対象からなる小規模なもの(有限表示を持つ圏)です。Cは、Cと同じ“形状”を持つスキーマSのデータベースインスタンス(スナップショット)だと思ってください。 Cの対象Aごとに対象K(A

    主キー/外部キーなんてドーデモイイ - 檜山正幸のキマイラ飼育記 (はてなBlog)
  • 1