タグ

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

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

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

    パイプライン指向JSON処理プログラミング言語 jq - 檜山正幸のキマイラ飼育記 (はてなBlog)
    yojik
    yojik 2022/12/05
  • 微分計算、ラムダ計算、型推論 - 檜山正幸のキマイラ飼育記 (はてなBlog)

    微分の計算は色々な場面で必要です。が、微分の記号である や が入った式の解釈って難しいですね。式の型〈type〉が分かりにくいのです。実際、原理的に型が判断できない式が使われることがあります。にもかかわらず、「分かる人には分かる」のは、暗黙のお約束や習慣的手順が駆使されるからです。 僕は、暗黙のお約束や習慣的手順が嫌いなので、ハッキリした計算方法を示したいと思います。現状の記法の問題点と対処法を知りたい方は、前半をテキトーに読み飛ばして、後半の3つの節を読めばいいと思います。 事前にラムダ計算について少し知っているほうがいいでしょう。JavaScriptや絵を使って説明した記事は: JavaScriptで学ぶ・プログラマのためのラムダ計算 JavaScriptで学ぶ・プログラマのためのラムダ計算 問題集 絵を描いて学ぶ・プログラマのためのラムダ計算 ラムダ計算をJavaScript側に寄せ

    yojik
    yojik 2019/08/13
  • 確率変数が分布に「従う」とは - 檜山正幸のキマイラ飼育記 (はてなBlog)

    確率・統計に出てくる「よく分からない言葉」を、多少は「分かる言葉」にしようと詮索した記事を、過去に幾つか書きました。そのリストはこの記事の最後に載せることにして、扱った「よく分からない言葉」は: 確率変数 分布 母集団 標 これらは「意味不明な用語の四天王」と言えます(「超曖昧語「母集団」「標」にケリをつける」)。 四天王の2つを含むフレーズに「確率変数が分布に従う」という言い回しがあります。これはどんな意味なのでしょう? 内容: 復習:確率変数と確率分布 「従う」とは 関連する過去記事 実例は: 「従う」の使用例:正規分布とカイ二乗分布 復習:確率変数と確率分布 過去記事を参照しなくて済むように、手みじかに復習します。確率測度、可測写像、確率空間の定義はハッキリしているので、これらをもとにして、意味不明な用語を解釈することにします。目的は意味をハッキリさせることで、教育的配慮とかは無

    確率変数が分布に「従う」とは - 檜山正幸のキマイラ飼育記 (はてなBlog)
    yojik
    yojik 2019/03/15
  • 食券販売機のユーザーインターフェースについて: ひとつのアンチパターン - 檜山正幸のキマイラ飼育記 (はてなBlog)

    しばらく記事の更新が滞っておりました。そのあいだにあったことを書きます。松屋が期間限定で「ごろごろ煮込みチキンカレー」を発売しました。2017年6月6日からのことです。 【朗報】松屋史上屈指のウマさ「ごろごろ煮込みチキンカレー」が日から大復活! 凄まじく絶賛しているブログ記事があったりします。 松屋の「ごろごろ煮込みチキンカレー」は絶対にべるべき“日カレー”の到達点 この柔らかチキンとスパイス感が590円で提供される世の中に感謝しかない 6月21日(水曜)には終了のようだったので、6月19日(月曜)べに行きました。このカレーについて言えば、確かに評判通り「凄い気合の入れよう」でした。([追記 date="2017-07-07"]今日、松屋の前を通ったら、まだ「ごろごろ煮込みチキンカレー」やっているみたい。6月21日で終了はガセネタだったのか?[/追記]) でも話題はカレーじゃなくて

    食券販売機のユーザーインターフェースについて: ひとつのアンチパターン - 檜山正幸のキマイラ飼育記 (はてなBlog)
    yojik
    yojik 2017/06/30
    フラットに並べてスワイプ移動にするとか、階層間を気軽に移動して比較検討を可能にするとか、単品注文も組み合わせによって自動的に定食にまとめるとか、もっとソフトウェアのパワーを活かしてほしい
  • 「フローチャート」騒ぎ、もう少し頭使って考えてみようよ - 檜山正幸のキマイラ飼育記 (はてなBlog)

    割と最近、次の記事がブックマークと注目を集めたようです。 若手プログラマー保存版!フローチャート徹底解説と作成カンニングペーパー 見る前に予想したように、「何言ってんだ!? コイツ」「アホかバカか」的な扱いでしたね。雰囲気としては、「ホメオパシー効いたよ、マジおすすめ」という類の記事への反応と似たようなものです。 ブックマーク: http://b.hatena.ne.jp/entry/it-koala.com/flowchart-2241 上記「フローチャート徹底解説」記事は、特段に酷いとは思いませんが、かといってたいして役立ちそうにないし、反感を買いそうな記述もある*1ので、記事を擁護する気はありません。しかし、フローチャート自体は強く擁護してきたので、ここでまたフローチャート擁護論を展開すべきかな、… と思わなくもないですが、あんまり乗り気じゃない -- 言いたいことは過去にほぼ書き尽

    「フローチャート」騒ぎ、もう少し頭使って考えてみようよ - 檜山正幸のキマイラ飼育記 (はてなBlog)
    yojik
    yojik 2016/12/26
    (狭義の)フローチャートはともかく、プログラム(というかあらゆる計算)をノードとエッジで良い感じに表現してみたい欲ってエンジニアならある程度はあるはず。決定打はないけど!
  • 入門的ではない型クラスの話:Haskellの型クラスがぁ (´^`;) - 檜山正幸のキマイラ飼育記 (はてなBlog)

    タイトルに「入門的ではない」と入れたのは; 先日の「関数型プログラミングとオブジェクト指向について、何か書く、かも」において、「型クラス入門」の記事を書くかもと予告じみたことを言ってしまったので、その入門じゃないぞ、と。でも、型クラスの話だぞ、と。そういう意味合いです。ヨロシク、アシカラズ。 型クラスの元祖はHaskellです。なので、「型クラス = Haskellの型クラス」という前提での解説が多いみたいです。しかし、元祖は“最初の試み”であるがゆえに、使用経験や後発の理論を活かすことが出来ず、むしろ問題をかかえていたりします。Haskellの型クラスも、なんだか残念なところが。 内容: オーバーロードと人生 型クラスは何がうれしいのか(オーバーロードなしでも) 型クラスの実際 記号の乱用の実装法 Haskellの型クラスは何がマズイのか オーバーロードと人生 型クラス誕生の動機は、演算

    入門的ではない型クラスの話:Haskellの型クラスがぁ (´^`;) - 檜山正幸のキマイラ飼育記 (はてなBlog)
    yojik
    yojik 2016/09/28
  • 関数型プログラミングとオブジェクト指向について、何か書く、かも - 檜山正幸のキマイラ飼育記 (はてなBlog)

    「「関数型プログラミングはオブジェクト指向の正当な後継」なの?」を書いていて次のようなことを思いました: テクノロジーに関する思索を語るのは推奨されるべき事だと思いますが、ベーシックな知識に裏打ちされてないと、解釈困難で意味不明になりがちです。せっかくの経験や思いがうまく伝わらないことになります。 知識は大切だな、とは思っているので、ちょっと気になりそうなトピックに関して、ベーシックな知識の入り口を解説する記事を書いてきました。 モナド 入門 → 世界で一番か二番くらいにやさしい「モナド入門」 (2006年) 圏論 入門 → はじめての圏論 その第1歩:しりとりの圏 (2006年) 継続 入門 → CPS(継続渡し方式)変換をJavaScriptで説明してみるべ、ナーニ、たいしたことねーべよ (2008年) メタクラス・レイフィケーション 入門 → いまさらながらだけど、オブジェクトとクラ

    関数型プログラミングとオブジェクト指向について、何か書く、かも - 檜山正幸のキマイラ飼育記 (はてなBlog)
    yojik
    yojik 2016/09/17
  • メイヤーオートマトンに関するマイヒル/ネロードの定理を宣伝する - 檜山正幸のキマイラ飼育記 (はてなBlog)

    最近、メイヤー代数/メイヤーオートマトンの話をしました。(メイヤーオートマトンとメイヤー加群は同義語です。) メイヤー先生からモナド類似構造へ メイヤー代数、メイヤー指標、メイヤーオートマトン メイヤー代数/メイヤー加群の圏 メイヤー代数/メイヤーオートマトンの概念は最近考えたわけではないのですが、概念に呼び名がなかったので語りようがない状況でした。 メイヤー先生が提唱する「Command-Query分離された状態遷移系」の代数的な定式化はだいぶ以前から考えていたのですが、なんと呼べばいいかウジウジと悩んでいました。思い切って(勝手ながら)メイヤー代数と呼ぶことにしました(「メイヤー代数、メイヤー指標、メイヤーオートマトン」)。これで話がしやすくなりました。名前がないモノについて語るのは困難(ときに不可能)ですからね。 2010年に「ストレージの線形代数: 泥臭いデータ操作の洗練された定式

    メイヤーオートマトンに関するマイヒル/ネロードの定理を宣伝する - 檜山正幸のキマイラ飼育記 (はてなBlog)
    yojik
    yojik 2016/09/15
  • 一般化されたマイヒル/ネロードの定理 3:オートマトンの振る舞いと観測 - 檜山正幸のキマイラ飼育記 (はてなBlog)

    ソフトウェアの設計と実装では、サブシステムやコンポネントの内部構造を明かすべきではない、と考えられています。アプリケーションプログラムは、サブシステム/コンポネントの公式のインターフェイスにだけ依拠すべきだ、となります。それを守れば、サブシステム/コンポネントの内部構造が変わっても(インターフェイスが不変なら)アプリケーションはそのまま動き続けるでしょう。 上記のような原則や、それからの帰結を一般化オートマトンの文脈で定式化してみます。 内容: 隠蔽原則 復習:構文と意味 振る舞い オートマトンの振る舞いと観測 非退化指標/非退化オートマトン 振る舞いの反カリー化表現と観測手順 リファクタリング補題と観測の関手性 今回のまとめ 初回/ハブ記事 隠蔽原則 一般化オートマトンの典型的な例は、伝統的オートマトンや特定のインターフェイスに対する実装クラスなどです。これらのオートマトンは内部構造を持

    一般化されたマイヒル/ネロードの定理 3:オートマトンの振る舞いと観測 - 檜山正幸のキマイラ飼育記 (はてなBlog)
    yojik
    yojik 2016/09/15
  • クリーネ代数への批判と賞賛: プログラムのモデル色々 - 檜山正幸のキマイラ飼育記 (はてなBlog)

    僕は、クリーネ代数に批判的なことを言ったりしています。例えば、古く(2005年)は「実はKleene代数は好きじゃない」、最近(2014年)では「クリーニ代数と圏論」とか。批判の対象にするということは、それに興味を持っているということです。興味がないものは批判さえしません。 僕はもちろん、クリーネ代数に興味を持ち続けています。でも、「これじゃ足りない」感があるのです。その感じを記します。不足を補う方針にも言及します。過去の記事への参照をたくさん入れますが、それにより、僕がこの話題の周辺を長年ウロウロしていることが分かるでしょう。 内容: プログラムの代数としてのクリーネ代数 クリーネ代数では表せない現象 トレース付きデカルト圏とデカルト半加法圏 並列実行と同期通信 条件付き実行はどこに行った? 時分割実行と待ち合わせ クリーネ代数は足りないけど素晴らしい プログラムの代数としてのクリーネ代

    yojik
    yojik 2016/09/13
    “クリーネ代数”
  • 「関数型プログラミングはオブジェクト指向の正当な後継」なの? - 檜山正幸のキマイラ飼育記 (はてなBlog)

    オブジェクト指向を知っている人々に、「関数型もオブジェクト指向と大差ないよ、大丈夫だよ」とお誘いする記事は大いに存在意義があると思います。 関数型プログラミングはオブジェクト指向の正当な後継である 上記の記事は、そういう目的を持って書かれたのでしょう。その内容(目次)は次のようです(僕のこの記事の目次じゃないよ)。 対象読者 なぜこの記事を書こうと思ったのか? なぜ関数型プログラミングはわかりにくいのか? オブジェクト指向の負の遺産を捨てよう 関数型プログラミングの概要 「阿吽の呼吸」とも言うべき使いやすさの拡張 型にまつわる考察 まとめ 最初のほうを読むと、言ってることはまっとうで好感を持てます。が、「5. 関数型プログラミングの概要」の節あたりから雲行きが怪しくなって、ちょっと何言ってるかわかんない((c)サンドウィッチマン)。 檜山のこの記事の内容: 真面目なポエム モナドっておいし

    「関数型プログラミングはオブジェクト指向の正当な後継」なの? - 檜山正幸のキマイラ飼育記 (はてなBlog)
    yojik
    yojik 2016/09/13
  • 又吉イエスさんによる大川隆法批判 - 檜山正幸のキマイラ飼育記 (はてなBlog)

    「今回は出馬しないのかな」で引用した又吉イエスさんの大川隆法批判(動画): https://www.youtube.com/watch?v=_7Wd8Iy_12U とても面白い意見なので冒頭部分(この部分だけで十分)を文字起こししました。 「天地を創造された地球至高神は大川隆法・総裁先生だ」に対する又吉イエスさんのコメント: それはまったく嘘でしょう。 宇宙万物を創り、人類を創造したのが、この再臨のキリスト・唯一神又吉イエスです。 ですから、大川隆法がそんなことをしたという事実はまったくありません。 これは嘘つきなんですよ、そんなこと言うならですね。 彼は、なんですか、釈迦の再臨であるとか(苦笑/嘲笑)色んなこと言っています。 少し頭がどうかしているんですよ。

    又吉イエスさんによる大川隆法批判 - 檜山正幸のキマイラ飼育記 (はてなBlog)
    yojik
    yojik 2016/08/01
  • 教養としてのC言語プログラミング入門は成立するのか - 檜山正幸のキマイラ飼育記 (はてなBlog)

    比較的に短い期間のなかで、プログラミングの基的なことを勉強する(させる)とき、どんな話題や課題を選ぶべきでしょうか? ここでの「基的」とは、「将来、もっと発展的なことを学ぶための土台を作る」という意味ではありません。「入門者でも手が届く典型的な事項」という程度の意味です。教養としてプログラミングをかじるときに、どこをかじるべきか? という問〈とい〉と言ってもいいでしょう。 使うプログラミング言語はC言語です -- と、ここでズッコケる人がいそう。そもそも、入門になんでC言語使うんだよ!? って話は当然あるんですが、まー、そこは「なんらかの事情でC言語しかない」前提にします。実は、この前提のテキストと問題集があったのですが、それを見て僕が感じたことを雑駁に書きます。 内容: パラメータの与え方:scanf()を使う scanf()でいいのか? コマンドライン引数 標準入力の利用 バッファ

    教養としてのC言語プログラミング入門は成立するのか - 檜山正幸のキマイラ飼育記 (はてなBlog)
    yojik
    yojik 2016/07/26
  • 自然演繹はちっとも自然じゃない -- 圏論による再考 - 檜山正幸のキマイラ飼育記 (はてなBlog)

    自然演繹は、その名の通りに「自然で分かりやすい」と言われたりします。僕は、そうは思いません。むしろ「不自然で分かりにくい」と感じます。導入規則と除去規則のあいだに綺麗な対称性がある、と言う人がいます。僕にはどこが綺麗か分かりません。無理クリに対称に見せてるだけで、むしろ歪んでいて汚ないじゃないか、と思います。 自然かどうか、綺麗かどうかは主観の問題ですから、議論しても不毛です。しかし、代替の定式化を示して、それを自然演繹と比較することにより、自然演繹を相対化することは出来ます。やってみます。 この記事の内容は、ここ10年くらい思っていたことです。口頭でしゃべったことはありますが(最後の節を参照)、まとまった記述はなかったので、割と丁寧に書きました。その結果、けっこう長大な記事となりました。 論理や圏論を学ぶには、まっとうな教科書を手元に置くのがよいでしょう。その教科書が主治医とするなら、僕

    自然演繹はちっとも自然じゃない -- 圏論による再考 - 檜山正幸のキマイラ飼育記 (はてなBlog)
    yojik
    yojik 2016/07/15
  • この広告怖いよ - 檜山正幸のキマイラ飼育記 (はてなBlog)

    みずほ銀行のシステム統合がヤバイよ、という記事を読んでいたら、出てくる広告がコレ↓ シュールというかホラーというか、不気味すぎてゾワゾワしてしまうんですけど(記事内容との相乗効果ありで)。 [追記]みずほ銀行の件は、まとめがあります。ここから色々リンクが出ています。 http://d.hatena.ne.jp/elwoodblues/20160706/1467806420 [/追記]

    この広告怖いよ - 檜山正幸のキマイラ飼育記 (はてなBlog)
    yojik
    yojik 2016/07/11
  • 無料で入手できる本格的(紙なら高額)な理数系専門書15選 - 檜山正幸のキマイラ飼育記 (はてなBlog)

    インターネットで資料探しをしていると、出版されている書籍と同じ内容のPDFがゴロンと置いてあってビックリすることがあります。以下に挙げるのは、そのような、“出版物と同等な内容”が無料公開されている理数系専門書のリストです。 紙のとまったく同じものもありますし、ドラフト原稿が公開されているものもあります。紙のの出版後もメンテナンスされていて、インターネット版のほうがより新しくより充実していることもあります。 例えば"Monoidal Functors, Species and Hopf Algebras"は、ハードカバーは735ページで、現時点で24,650円もする大部な書籍です。公開されているPDFは書籍より増量して836ページあり、誰でも無料ダウンロード可能です。 著作権があやしいものは除外し、著者人または著者の所属組織のWebサイト、あるいはarXiv.orgで公開されているも

    無料で入手できる本格的(紙なら高額)な理数系専門書15選 - 檜山正幸のキマイラ飼育記 (はてなBlog)
    yojik
    yojik 2016/07/05
  • Isabelleについて: 証明支援系は何を目指し、どこへ向かうのか - 檜山正幸のキマイラ飼育記 (はてなBlog)

    昨日の記事「Isabelle/jEditの野心的な試み「継続的チェッキング」に「ウォ」っとなった」では、Isabelleのユーザーインターフェースが備えている特徴的な機能である「継続的チェッキング」だけを取り上げました。ここで改めて、証明支援系としてのIsabelleシステムを紹介しましょう。客観的な紹介ではなくて、僕の雑駁な印象記です。 内容: Isabelleの独自な世界 Isabelleの未来 Isabelleの独自な世界 「Isabelle/jEditの野心的な試み「継続的チェッキング」に「ウォ」っとなった」より: PIDE構想は、Isabelleプロジェクト/コミュニティを世の趨勢とは離れた孤立化へと導くのか、それとも、時代がPIDEの先進性にいずれ追いつき、PIDEがスタンダードな証明支援系UIとなるのか? なかなかに興味深いですな。 Isabelleが世の趨勢と離れるのか?

    Isabelleについて: 証明支援系は何を目指し、どこへ向かうのか - 檜山正幸のキマイラ飼育記 (はてなBlog)
    yojik
    yojik 2016/06/09
  • クロージャなんて貧乏人のオブジェクトだろ - 檜山正幸のキマイラ飼育記 (はてなBlog)

    http://people.csail.mit.edu/gregs/ll1-discuss-archive-html/msg03277.html : closures are in fact poor man's objects (in his opinion). ...snip... A closure is an object that supports exactly one method: "apply". Christian Queinnecは、 closures are a poor man's objects と言っている、一方、Norman Adamsは、 objects are a poor man's closures と言っている、と、そんなことみたいです。「クロージャはよく知らないがオブジェクトなら知ってる」という人は多そうなので、「クロージャとは、貧乏人のオブジェ

    クロージャなんて貧乏人のオブジェクトだろ - 檜山正幸のキマイラ飼育記 (はてなBlog)
    yojik
    yojik 2016/05/17
    クロージャは貧乏人のオブジェクトで、オブジェクトは貧乏人のクロージャ
  • 次元+次元・解析 -- 現象と量の型チェック機構 - 檜山正幸のキマイラ飼育記 (はてなBlog)

    「なんとかならないのか!? ベクトル解析:用語法の無茶苦茶」で次のように言いました: (物理的な意味での)次元解析をちゃんとすべし それで、次元解析(みたいなこと)の話をしたいのですが、「次元」という言葉は注意が必要です。「次元」の2つの意味・用法と、それら2つの次元を両方とも同時に計算・解析する方法について述べます。 内容: 幾何次元と物理次元 量の空間の演算 直積と外積 無次元量 実例:熱流束密度と熱伝導度 L3/(L3∧L3) の分析 強い型付けとしての次元解析 ●幾何次元と物理次元 「次元」は多義語なので、代表的な2つの用法を「幾何次元」と「物理次元」と分けて呼びましょう。 幾何次元は、「直線が1次元で平面なら2次元」といった使い方をする「次元」です。要するに、「空間がいくつの方向に広がっているか」ですね。あるいは、空間の位置を数値の組(座標)で表すとき、「いくつの数を必要とするか

    次元+次元・解析 -- 現象と量の型チェック機構 - 檜山正幸のキマイラ飼育記 (はてなBlog)
    yojik
    yojik 2016/05/17
    次元解析と型チェックは似ている
  • 関手データモデル/圏論データベース: その後の発展と現状 (2016) - 檜山正幸のキマイラ飼育記 (はてなBlog)

    2013年の初頭に、デイヴィッド・スピヴァックの関手データモデル(functorial data model)について紹介しました。 デイヴィッド・スピヴァックはデータベース界の革命児か -- 関手的データモデル 衝撃的なデータベース理論・関手的データモデル 入門 あれから3年3ヶ月が経過して、今、関手データモデルや圏論データベース(categorical database)の状況はどうなっているでしょうか。 一言でいえば、 派手に喧伝はされてないが、着実に発展している となるでしょう。その進展の様子を次の3つの側面から概観してみます。 ビジネス ソフトウェア 理論 内容: ビジネス: Categorical Informatics, Inc ソフトウェア: FQL IDE 理論: 等式論理と代数データベース ※ リンクと注釈がたくさんあるのは、この記事が、この話題に関する説明付きブックマ

    関手データモデル/圏論データベース: その後の発展と現状 (2016) - 檜山正幸のキマイラ飼育記 (はてなBlog)
    yojik
    yojik 2016/05/11