タグ

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

  • なぜ、多値関数は人気がないのだろう - 檜山正幸のキマイラ飼育記 (はてなBlog)

    たいていのプログラミング言語が、「関数」、「メソッド」、「手続き」などと呼ばれる言語構成要素を持っています。ここ最近のエントリー内で僕は、それらをひっくるめて(少し低水準な観点から)「サブルーチン」と呼びました。 このサブルーチン概念に関していえば、どの言語も大差ない印象を持ちます。いくつかの引数をもらって何かして1つの値を返しますよね。(値を返さないこともあるけど、ありゃ、暗黙に特定の値を返していると見てさしつかない。) なんで引数はn個なのに、戻り値は1個なんでしょう? 多値関数をサポートしている言語もあるけど(例:Common Lisp)、なんかオマケみたいな扱い。言語の中核的仕様として多値を採用している例を僕は知りません(あったら、教えて)。 それはコンピュータのせいでしょうか 「プログラマの常識関連」の文脈で言及した、スタックやレジスタが原因かもしれません。 普通(“普通”の解釈

    なぜ、多値関数は人気がないのだろう - 檜山正幸のキマイラ飼育記 (はてなBlog)
  • 入門的ではない型クラスの話:Haskellの型クラスがぁ (´^`;) - 檜山正幸のキマイラ飼育記 (はてなBlog)

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

    入門的ではない型クラスの話:Haskellの型クラスがぁ (´^`;) - 檜山正幸のキマイラ飼育記 (はてなBlog)
  • はじめての圏論 その第2歩:行列の圏 - 檜山正幸のキマイラ飼育記

    「第2歩」と書いたからと言って続くかどうかはわからない、なにしろ僕は気まぐれだからね。 とりあえず第1歩で、手でいじれる圏の例が1つは手に入りました。圏論のような抽象的/一般的な理論を納得するには、具体的な例をたくさん知って、具体例に一般論を適用してみるのがいい方法だと思います。 そこで、関手だの自然変換だのに進む前に、もうひとついじり倒せる具体例を出しておきましょう。しりとりの圏よりは少しだけ高級で、行列(マトリックス)を考えます。僕は、高校で2×2行列の計算を無意味にやらされた記憶があるのだけど、今の教育はどうなっているかしら? ともかく、行列計算の経験は仮定します。 内容: 行列の復習 行列の圏 圏の名前付けとか記号とか ホムセットと矢印記法 図式順記法と反図式順記法 全体目次 行列の復習 行列は、数を四角形に並べたモノです。ここで、「数」は実数だとしておきます。横の並びが行で、縦の

    はじめての圏論 その第2歩:行列の圏 - 檜山正幸のキマイラ飼育記
    Untouchable
    Untouchable 2015/11/22
    “圏論のような抽象的/一般的な理論を納得するには、具体的な例をたくさん知って、具体例に一般論を適用してみるのがいい方法だと思います。”
  • はじめての圏論 その第1歩:しりとりの圏 - 檜山正幸のキマイラ飼育記

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

    はじめての圏論 その第1歩:しりとりの圏 - 檜山正幸のキマイラ飼育記
  • 林晋さんのこと、根拠なきイチャモンのこと - 檜山正幸のキマイラ飼育記 (はてなBlog)

    先週のことでタイミングが遅れていますが、 http://d.hatena.ne.jp/JavaBlack/20151103/p1 相変わらず、何の根拠も示さずに知ったふうな事をのたまう。無根拠・非論理の芸風は死ぬまで治らない(治さない)のでしょう。 林晋さん*1へのたちの悪い言及を目にしてしまったので、一言いわずにはおれない気分です。 まず、林晋さんの著書について述べます。林さんのは3冊持っていて、目次と索引しか見ない僕*2にしてはよく参照してます。 コロナ社の『数理論理学』*3は手が届く場所に置いてあります。 数理論理学 (コンピュータ数学シリーズ) 作者:晋, 林発売日: 1989/12/20メディア: 単行 カリー/ハワード対応について説明している論理のは少ないので、非常に助かります。かつてラムダセミナー/モニャドセミナーでカリー/ハワード対応を題材にしたときのネタはこれです

    林晋さんのこと、根拠なきイチャモンのこと - 檜山正幸のキマイラ飼育記 (はてなBlog)
  • 論理的であるかのごとくに装って、根拠のないイチャモンをつける 13+2 の方法 - 檜山正幸のキマイラ飼育記 (はてなBlog)

    ちょっと挑発(コレの最後)してみたけど、どうせ反応はないだろな。しらけてしまわないうちに自分でテンション上げて解説を書いてみました。 内容: 前がき 編 定義の違いを真偽の議論にすり替える 言ってもない事を否定して印象操作をする 傾向や量に関する主張に、勝手に全称限量子を付けてしまう とある階層でなされた主張を、別な階層で否定する 権威や前例に訴える 権威や前例に訴える 別バージョン 論点ズラシ、意図・論点の曲解 論点ズラシ、意図・論点の曲解 感情バージョン 意味もなく自分の経験や知識を強調 問題点を他の事情により帳消しにする 意味不明でもいいから難しそうなことを言ってみる 普通とは異なる解釈を持ち出す 反論されたときは最小コストでごまかす 余計なお世話な悪口も辞さない 言い張る 後がき 前がき すぐあとに続く「編」では、ホントに「根拠のないイチャモンをつける方法」、もう少し正確に言う

    論理的であるかのごとくに装って、根拠のないイチャモンをつける 13+2 の方法 - 檜山正幸のキマイラ飼育記 (はてなBlog)
  • 誰も書かないCoq入門以前の話 - 檜山正幸のキマイラ飼育記 (はてなBlog)

    WindowsへのCoqのインストール」: 事情があって、AgdaかCoqを触ってみようか、と。 事情というのは、個々の命題の証明(確認)は割と簡単そうだが、命題がイッパイあるのでウンザリな状況のことです。家計簿の計算が筆算だと面倒だから電卓を使いたい、という状況と同様です。 それでCoqのインストールは済んだのですが、処理系の使い方が分からない。個々の操作は覚えていけばいいのでしょうが、そもそもCoq処理系が何をするものなのか? が理解できないのです。Web上にCoqの解説は幾つもあるのですが、「いやいや、そうじゃなくて、それ以前のことがサッパリわからんのですけど」という感じ。スタートラインに立てない。 それで、「Coqの解説」じゃなくて「Coqの仕様」を読んだほうがいいのかも、と https://coq.inria.fr/distrib/current/refman/ (リファレンス

    誰も書かないCoq入門以前の話 - 檜山正幸のキマイラ飼育記 (はてなBlog)
  • 分散バージョン管理システムは誤解されやすいイノベーション(ジョエルも言っている) - 檜山正幸のキマイラ飼育記 (はてなBlog)

    2009年6月12日に、僕は分散バージョン管理システムMercurialについて短い記事を書いて、そこで次のような言ってます。 実は僕は、分散バージョン管理という発想と仕掛けを最初はまったく理解できず、「エエーッ?なんだそれ」「そんなんでうまくいくのかよ?」とかグダグダ言っていたのですが、いったん使い始めればラクチンラクチン。 要するに、最初は誤解に基づき否定的だったってことね。僕と同じような誤解をする人がいるような気はしたのですが、あまりうまく解説できそうにないので*1: 「四の五の言ってないで、使ってミソ」ってことです。 最近になって、ジョエル・スポルスキ(Joel Spolsky / 青木靖 訳)の「分散バージョン管理で間違いないって、ベイビー」という記事を目にしました。2010年3月17日に書かれた記事です。 なんと、あのジョエル・スポルスキも最初は誤解に基づき否定的だったらしいで

    分散バージョン管理システムは誤解されやすいイノベーション(ジョエルも言っている) - 檜山正幸のキマイラ飼育記 (はてなBlog)
  • 檜山正幸のキマイラ飼育記 - プログラマのためのJavaScript (0)

    ジジイの手習いで、JavaScriptを勉強中でございます。その動機は「結局、ブラウザベースRIAかよ」のようなこと。非ブラウザベースのリッチクライアントへの期待を失ってしまったんですね。短期的・現実的な策としては、Ajax的な手法によるRIAなのかなぁ、という気分。ただし、「短期的」が“1年”と“5年”ではえらい違いです。今のところ僕には、「短期的」の実際の期間はわかりません。 僕のJavaScript調査の結果は、「初心者でも使えてプログラマでも困惑するJavaScript 」などに書きました。これらの続きとして、「プログラマのためのJavaScript (*)」というタイトルで書こうかと予定してます。あくまで予定、気まぐれでモノグサな僕のことだから、…… “プログラマのための”というのは、C, C++, Java, C#など“普通の”プログラミング言語にある程度慣れていることを前提に

    檜山正幸のキマイラ飼育記 - プログラマのためのJavaScript (0)
    Untouchable
    Untouchable 2012/08/10
    実装から見る、B.prototype = new A() がなぜ「継承」になるのかという説明は必見/残念ながら未完
  • 1