タグ

型理論に関するNagiseのブックマーク (8)

  • draft.dvi

  • Scalaで型レベル”だけ”でクイックソート | POSTD

    Scalaの型システムが先進的であることは、皆さんもご存じのことかと思います。この投稿では、Scalaの型システムのみを使った クイックソート アルゴリズムの実装方法をご紹介したいと思います。なお、ここで紹介するデモの完全なコードは こちら をご覧ください。 自然数 まずは準備から。ソートアルゴリズムを実装するには、ソートする対象が必要ですよね。ここでは自然数を用います。もちろん、Scalaの型システムには利用可能な自然数はありません。そんなわけで、全ての自然数の型を作る必要があります。 型を無限に作るというのは、恐らく時間の浪費になるでしょうから、ここはもう少し賢い手を考えます。そう、数学を使いましょう。 ペアノの公理 ペアノの公理とは、自然数を形式的に定義するためのシンプルな方法のことです。 0 は特別なものとする。 0 は自然数である。 全ての自然数 n には、それに続くもう1つ別の

    Scalaで型レベル”だけ”でクイックソート | POSTD
  • scalaのmatch-caseは型安全?非型安全?

    西田和史(k.bigwheel) @k_bigwheel scala - Tuple Unpacking in Map Operations - Stack Overflow bit.ly/1qzg4Wv これ、一番正しいのはbest answerじゃなくてその下のtupledを使うことじゃないかな? 2014-09-04 12:12:25 西田和史(k.bigwheel) @k_bigwheel 以前からscalamapでtupleを各変数へ展開するときにcaseを使うことは間違ってる気がしてたんだけど、やっぱこれ型安全じゃないよね?Function.tupledは初めて知ったけどこれは型安全な気がするしこれを使うのが正解だと思う 2014-09-04 12:13:30

    scalaのmatch-caseは型安全?非型安全?
  • イイカゲンな型システムを求めて - 檜山正幸のキマイラ飼育記 (はてなBlog)

    カタカナで書いた「イイカゲン」の意味は、ずぼらでだらしないことですが、来の「良い加減」つまり「適切」という意味も若干は含んでいます。僕は随分長い期間、僕のようなずぼらでだらしない性格の人に向いていて、それにもかかわらずある種の適切さ、バランスの良さを備えていて、さらに破綻しない程度には首尾一貫している型システムがないものかと探したり考えたりしてきました。 この課題はけっこう難しいもので、よい解答を得るには至っていません。でも、現時点における「こんな感じかな」を記しておこうと思います。 内容: 概念と記法の準備 動機と目的 キー付き型 キー付きタプル型 キー付きバリアント型 キーによるガードとマーク 関数のキー付きタプル 関数のキー付きバリアント 圏論的な考察 目論見 概念と記法の準備 データとしてJSONデータを考えます。その理由は、JSONは既に多くの人が知っているだろうし、新たに学習

    イイカゲンな型システムを求めて - 檜山正幸のキマイラ飼育記 (はてなBlog)
  • メソッド呼び出しの型推論を追いかける(前半) - しげるメモ

    メソッドの型推論エンジン作ってて、そのテストケースの洗い出し中。 Java言語仕様(第3版)の15.12.2.7 Inferring Type Arguments Based on Actual Argumentsを私なりに解説してみようと思います。理解してしまえば、そんな実装が難しいものではありません。 メソッドの型推論は主に次の2ステップからなります。 実引数と仮引数の制約から、型変数に対する制約を計算する 型変数に対する制約から、実際の型を推論する (前半)では、前者の部分について追いかけてみます。言語仕様の和訳では、p.395〜p.405のあたりです。ちなみに、テストケース洗い出しのために網羅しているので、同じくらいの分量が平気であります。 わかりやすさのために、厳密さを犠牲にしている個所が多々あります。なんとなくわかった気になれば十分、という用途でない場合は素直に家の言語仕様を

    メソッド呼び出しの型推論を追いかける(前半) - しげるメモ
    Nagise
    Nagise 2009/03/26
    プログラム言語作ろうとしているんでこのあたりは克服しておきたいのだが…。Javaの場合はボクシング変換があるのでことさら複雑な気がする。0から設計するならもっとシンプルになりそうなんだけども。
  • Inemuri nezumi diary(2009-03-24)

    いけがみを召喚するには、出現予定を参考にしてください。三週間前までにメールをくだされば、日程を追加するなどしてスケジュールに組み込むことができるかもしれません。勉強会や個人的な会合、中途採用面接などに応じます。 _ Prolog大阪さんの事を論理的に考える集い参加記 前日まで、Agda と型理論とモデル理論の予習をしていた。 当日になって、会場の阪急グランドビルにある「漫画しかおいていない紀伊国屋」で大阪さんの漫画4冊を購入するという泥縄ぶり。 1 巻だけ斜め読みして、大阪さんのキャラクターを把握。その後、Lambda Cube と L Cube の例の記号を暗記できんからむぐーと読み直していたら、あろはさんと合流する。 その後、時間がきたので、アジアンキッチンで 7 人。夕飯後、一階下の喫茶店に移動して 6 人でお茶。 7 人席がなく、コの字型に座ったので、真ん中の二人(ranhaさん

    Nagise
    Nagise 2009/03/25
    型理論の理解をもっと深めたいな。今年の目標にしてもいい。
  • 「型」に関して - ohai日誌(2005-05-17)

    Index of /~ohai/diary/../

    Nagise
    Nagise 2009/03/24
    キャスト時に例外とかで止まれば型安全?
  • 北陸オフ会 - カノニカルな日々。

    IT戦記の中の方による北陸で新年オフ会やります! に行って来ました。 こういう集まりは初めてだったのですが、なかなかどうして色々と面白いお話が聞けてとても面白かったです。自分の現状及び方向性がわかったのがよかった。でも、やはりいろいろな方に出会えたことというのが一番の収穫でした。 加えて、最近ちょっと気になっていたカインド(型の型)の話が思いがけず聞けたのがよかった。カインドとは型の型というのはその説明のとおり、型の型推論計算に関与しない情報を抽象したものらしい。すなわち、ラッセルの型理論ぽく表現すると、型よりも一階層上の類がカインド。

    Nagise
    Nagise 2009/01/05
    カインドの話が興味深い
  • 1