Scalaの型システムが先進的であることは、皆さんもご存じのことかと思います。この投稿では、Scalaの型システムのみを使った クイックソート アルゴリズムの実装方法をご紹介したいと思います。なお、ここで紹介するデモの完全なコードは こちら をご覧ください。 自然数 まずは準備から。ソートアルゴリズムを実装するには、ソートする対象が必要ですよね。ここでは自然数を用います。もちろん、Scalaの型システムには利用可能な自然数はありません。そんなわけで、全ての自然数の型を作る必要があります。 型を無限に作るというのは、恐らく時間の浪費になるでしょうから、ここはもう少し賢い手を考えます。そう、数学を使いましょう。 ペアノの公理 ペアノの公理とは、自然数を形式的に定義するためのシンプルな方法のことです。 0 は特別なものとする。 0 は自然数である。 全ての自然数 n には、それに続くもう1つ別の
西田和史(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 以前からscalaのmapでtupleを各変数へ展開するときにcaseを使うことは間違ってる気がしてたんだけど、やっぱこれ型安全じゃないよね?Function.tupledは初めて知ったけどこれは型安全な気がするしこれを使うのが正解だと思う 2014-09-04 12:13:30
カタカナで書いた「イイカゲン」の意味は、ずぼらでだらしないことですが、本来の「良い加減」つまり「適切」という意味も若干は含んでいます。僕は随分長い期間、僕のようなずぼらでだらしない性格の人に向いていて、それにもかかわらずある種の適切さ、バランスの良さを備えていて、さらに破綻しない程度には首尾一貫している型システムがないものかと探したり考えたりしてきました。 この課題はけっこう難しいもので、よい解答を得るには至っていません。でも、現時点における「こんな感じかな」を記しておこうと思います。 内容: 概念と記法の準備 動機と目的 キー付き型 キー付きタプル型 キー付きバリアント型 キーによるガードとマーク 関数のキー付きタプル 関数のキー付きバリアント 圏論的な考察 目論見 概念と記法の準備 データとしてJSONデータを考えます。その理由は、JSONは既に多くの人が知っているだろうし、新たに学習
メソッドの型推論エンジン作ってて、そのテストケースの洗い出し中。 Java言語仕様(第3版)の15.12.2.7 Inferring Type Arguments Based on Actual Argumentsを私なりに解説してみようと思います。理解してしまえば、そんな実装が難しいものではありません。 メソッドの型推論は主に次の2ステップからなります。 実引数と仮引数の制約から、型変数に対する制約を計算する 型変数に対する制約から、実際の型を推論する (前半)では、前者の部分について追いかけてみます。言語仕様の和訳では、p.395〜p.405のあたりです。ちなみに、テストケース洗い出しのために網羅しているので、同じくらいの分量が平気であります。 わかりやすさのために、厳密さを犠牲にしている個所が多々あります。なんとなくわかった気になれば十分、という用途でない場合は素直に本家の言語仕様を
いけがみを召喚するには、出現予定を参考にしてください。三週間前までにメールをくだされば、日程を追加するなどしてスケジュールに組み込むことができるかもしれません。勉強会や個人的な会合、中途採用面接などに応じます。 _ Prologで大阪さんの事を論理的に考える集い参加記 前日まで、Agda と型理論とモデル理論の予習をしていた。 当日になって、会場の阪急グランドビルにある「漫画しかおいていない紀伊国屋」で大阪さんの漫画4冊を購入するという泥縄ぶり。 1 巻だけ斜め読みして、大阪さんのキャラクターを把握。その後、Lambda Cube と L Cube の例の記号を暗記できんからむぐーと読み直していたら、あろはさんと合流する。 その後、時間がきたので、アジアンキッチンで 7 人。夕飯後、一階下の喫茶店に移動して 6 人でお茶。 7 人席がなく、コの字型に座ったので、真ん中の二人(ranhaさん
IT戦記の中の方による北陸で新年オフ会やります! に行って来ました。 こういう集まりは初めてだったのですが、なかなかどうして色々と面白いお話が聞けてとても面白かったです。自分の現状及び方向性がわかったのがよかった。でも、やはりいろいろな方に出会えたことというのが一番の収穫でした。 加えて、最近ちょっと気になっていたカインド(型の型)の話が思いがけず聞けたのがよかった。カインドとは型の型というのはその説明のとおり、型の型推論計算に関与しない情報を抽象したものらしい。すなわち、ラッセルの型理論ぽく表現すると、型よりも一階層上の類がカインド。
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く