2009-06-01から1ヶ月間の記事一覧
ICFPCを早々に諦めて、ちょっと凹んでいたところ、サークル関係の内輪のチャットで比較的手軽に解けそうな問題が貼られていたので、暇つぶしに解いてみた。出典はどこかよくわからんのだけど、http://ayacnews.blog57.fc2.com/blog-entry-6635.htmlなど、い…
(中略) static void Main(string[] args) { var dict = Dict.Create( (out string key, out int val) => { key = "hoge"; val = 0; }, (out string key, out int val) => { key = "piyo"; val = 10; }); foreach (var p in dict) { Console.WriteLine(p.ToSt…
主に型安全性に関する話について。必要悪的にそうなっているのであって、別にいい加減なわけじゃないよー、というScala擁護の話です。 つまるところ、ぼくが Scala に期待していたのは Ruby のような快適さ (書きやすい文法に豊富な便利メソッドなど) OCaml/…
flagir を作るなどの過程で感じた Scala への不満を列挙。こんな記事を (日本語で) 公開しても誰も得しないし誰も読まないだろうから、やめようかなとも思ったんだけど。ぼくの勘違いなら指摘してもらえるかもしれないし、記録という意味もあるのでやっぱり…
情報科学若手の会については、こちらのページから。名前がなんかお堅いですが、別にそれほどあかでみっくな場でも無いので、非研究者の人でもどしどし参加していただければ、と思います。どういう発表が過去にあったのかは、Webページの「過去の活動」を見て…
以前にMetaScalaで見かけて、なるほどーと思ったテクニック。実装は非常に簡単。 scala> type assertEq[A, B >: A <: A] = Nothingたったこれだけ。説明は不要だと思うが、Scalaだと、型パラメータのlower boundとupper boundの両方を指定できる事を利用して、BはAのサブタイプかつスーパータイプでなければならないという指定によって、型Aと型Bが等しい事をassertしている。使い方は以下のような感じ。 scala> type x = assertEq[Int, Int] defined type alias x scala> ty…</:>
S-99: Ninety-Nine Scala Problems(P11-P20)を解いてみたの続き。P21-P30ではなく、P21-P28になっているのは、P27とP28がそれぞれ二問ずつあり、P28で一端問題が区切られているため。今回のは、時間を測り忘れていたが、前回よりもややてこずった気がする。…