kmizuの日記

プログラミングや形式言語に関係のあることを書いたり書かなかったり。

2008-01-01から1年間の記事一覧

Java 7のクロージャ(BGGA版)のプロトタイプを試してみた(2) - control invocation syntax

参考URLはこの辺:http://tronicek.blogspot.com/2008/02/version-2008-02-22.htmlBGGA版のクロージャには、シンタックスシュガーとして、control invocation syntaxというものがあり、クロージャ(というか無名関数。いい加減しつこいけど)を最後の引数に取…

Java 7のクロージャ(BGGA版)のプロトタイプを試してみた

Java API、使ってますか? (53) Java SE 7の要注目機能"クロージャ"はどうなるのかの記事を参考に、ここからプロトタイプ実装をダウンロードしてきてインストールしてみた。注意点として、上記の紹介記事ではJDK 5.0以降が必要という風に書かれているが、JDK …

「こんなプログラムを書いてみよう」 in Scala

http://d.hatena.ne.jp/nowokay/20080717#1216294670とりあえず、こんな感じかな(k文字版)。効率は度外視して、サクっと書ける書き方で書いてみた。 object S { def strings(list: List[String]): List[String] = { def g(prefix: String, list: List[String…

ゆの in Scala

ゆの in Rubyゆの in Pythonゆの in Smalltalkゆの in Squeak Smalltalkその他多数元ネタについてはよく知らんのだけど、なんか流行ってるっぽいので書いてみた。ポイントは、式の中での_がplace holderになってしまうので、通常のパラメータにはならないの…

第41回情報科学若手の会開催のご案内

2008年の情報科学若手の会の参加者募集が始まりましたので、 ご案内させていただきます。皆様、是非ふるってご参加ください。 また、皆様の周りにいらっしゃる若手の方にも本会の趣旨を説明して いただき、参加を促していただければ幸いです。 - 第41回情報…

ひょっとしたら役に立つかもしれないScala Tips(2) - パターンマッチングの最適化 -

Scalaのパターンマッチングを用いたコードは、通常は if(...) { ... } else if(...) { ... }のような、上から順に条件を満たしているかをチェックして分岐するコードにコンパイルされるが、色々試して見たところ、整数を対象にしたパターンマッチングの場合…

日本Ruby会議2008の感想とか

地元ということもあり、0日目から2日目まで一応全日参加した。メモもろくに取っていなかったし、日本Ruby会議2008が終わってから既に数日たっているので、細かい部分はあまり覚えていないけど、一応書いておく。 0日目 0日目はあんまり興味ある発表が無かっ…

"Some aspects of Parsing Expression Grammar", Roman Redziejowski

http://home.swipnet.se/redz/roman/papers/FI2008.pdf To appear in Fundamenta Informaticae. Preliminary version appeared in Proceedings of the CS&P'2007 Workshop, 594-605. らしい。著者の名前に見覚えがあるなと思ったら、以前読んだ、Parsing Exp…

「Java初心者が犯しやすい10の過ち」の誤り

http://journal.mycom.co.jp/news/2008/06/18/041/index.htmlの内容について。大筋で異論は無いんだけど、 オブジェクトは参照渡し、基本型は実体渡し は間違い(かなり昔から同じ誤解が再生産されてきた気がする)。基本型は値そのものを、参照型はオブジェク…

Ruby会議2008のバッジ

Ruby会議2008のバッジができたらしい(ref: http://rubykaigi.tdiary.net/20080617.html#p01)。一般参加者として参加するので、ATTENDEEのバッジを貼り付けてみた。当日お会いする事があればよろしくお願いします(この日記を見てる方でRuby会議に参加される方…

Scala勉強会@豆蔵の発表資料

アップロードしました(Scala-implicit-conversion.pdf)。内容は、Scala勉強会@関東のPower of `implicit`の内容をベースにしていますが、多少の変更を加えてあります。そういえば、勉強会の感想を書いていませんでした。Scalaに関する発表に関しては、発表内…

ひょっとしたら役に立つかもしれないScala Tips(1) - プライマリコンストラクタ引数の隠蔽 -

先週金曜日のScala勉強会@豆蔵で、case classに関して、通常は公開されることを意識してつけないコンストラクタの仮引数名が公開されることになっちゃうので、慎重に名前を決めないといけないよねー、という感じのことをNyaRuRuさんがおっしゃってたのですが…

class定義/object定義からの脱出

ささださんの日記の http://arton.no-ip.info/diary/20080607.html#p01 を見て,Ruby のクラス文からの脱出方法を思い出した.わかる人,居ます? class 文実行中に抜けるの.たとえば,条件次第ではその後のメソッド定義はしない,とか. http://www.atdot.…

与えられた木から,子→親への対応を作る,を Scalaで書いてみた(XML版)

ScalaにはXMLリテラルがあるので、せっかくなのでXMLを使ったプログラムも書いてみた。XMLのNodeクラスには、子孫ノードを列挙してくれるメソッドがあるので、明示的に再帰を書かずに済んでいるが、XMLリテラルによって木構造を表現しているため、木構造を構…

与えられた木から,子→親への対応を作る,を Scalaで書いてみた

NyaRuRuさんの日記より引用: 流行っているっぽいのでやってみました. 与えられた木から、子→親への対応を作る Shiro(2008/05/24 11:55:47 PDT): たまたま昨日、仕事で扱った小ネタ。初級編クイズになりそうなので書き留めておく。木構造が与えられる。たと…

Scalaでランクn多相をエミュレート

ヒビルテ(2008-05-29)より: OCamlの場合 一方、OCamlの場合にはランクN多相に直接対応してはいない*2けど、レコードのフィールドが多相型を持つことが出来るので、多相関数をレコードに包んで受け渡すことでエンコードできる。 type some_record = {x:int l…

「nを1から初めてその2乗を足していき、和が2000を初めて超えたとき和はいくつになるかという問題」をScalaで解いてみた

なんか凄い長いタイトルだ。元ネタはプログラミング言語が与える影響 (GrayRecord)とりあえず、NyaRuRuさんのC#版の解 結局 C# 版はこんなコードになりました. using System; using System.Collections.Generic; using System.Linq; using Achiral; using A…

Function TypeとTuple Typeの制限

Scalaでは、function typeやtypeを表記するのに、 (Int) => Int (function type)や (Int, Int) (tuple type)といった記法が使えて、一見すると、function typeやtuple typeが普通のクラス型と違う特別な型かのように見えるのだが、実はこれは、単なる scala.…

ScalaのコレクションからJavaのコレクションへの変換用ライブラリ

Scala勉強会のときに、誰かから、ScalaのコレクションをJavaのコレクションに変換するためのライブラリって無いの?という質問があって、それに対して、そういうものは無いけど、割とすぐ書けますよ、てな感じで答えたのをふと思い出して、サクっと書いてみ…

for-comprehensionはどのように展開されるか

val seq = for(x <- 1 to 100; y <- 1 to 100; if y == x * x) yield (x, y)実は,map,flatMap,filterのシンタックスシュガーらしい.どーいう風に展開されてるのか,知りたい. http://d.hatena.ne.jp/matt-k/20080511#p2 実は、Scala勉強会当日にも同じ…

partial functionについて訂正

Scala勉強会@関東-1のときに、 { case 1 => "A" case 2 => "B" }のような式が、それ単体でpartial functionのリテラルであるというような説明をしていましたが、今日、Scala Language Specificationの該当箇所(8.5 Pattern Matching Anonymous Functionsの辺…

Scala勉強会@関東-1 収支

勉強会: 飲食費 - 1959円 懇親会1次会: 3500円 * 8人 + 28000円 4000円 * 10人 + 40000円 飲食費 - 63000円 懇親会2次会: 飲食費 - 1562円 - + 1479円 黒字分の1479円は次回Scala勉強会に繰り越します。

Scala勉強会@関東-1 反省点

今回のScala勉強会@関東-1は、主催者として反省すべき点が多すぎて、わざわざ時間を割いて来てくださった参加者の方および、会場を提供して頂いたささださんには申し訳無かったと思います。今後、勉強会などを主催するときのために、反省点およびそれを踏ま…

Scala勉強会@関東-1 終了

運営や時間配分などの点で、反省点が多過ぎる勉強会になってしまいましたが、会場提供者の笹田さんの助けもあり、なんとか無事に終了いたしました。発表スライドは以下です。また勉強会の感想や不満、要望(発表内容および時間配分、などなど)があれば、この…

Scala勉強会@関東-1

明日(5/10(土))、第1回Scala勉強会@関東を開催します。参加される皆様、 よろしくお願いします。あと、もしも今からキャンセル、特に懇親会をキャンセル される場合、できるだけ早めに連絡をお願いします。

Scala勉強会@関東-1 懇親会

予約しておきました。場所は、 居食屋 「和民」秋葉原昭和通駅前店 です。Scala勉強会@関東-1

Genericsはイレイジャによる実装の方が単純か

自分は逆に「Elaser だったからこそ単純になってる」んじゃないのかなぁとは思います。ランタイムには Generics を考えなくて良いですし。基本的には。 http://d.hatena.ne.jp/SiroKuro/20080506/1210034867 うーん。確かに、イレイジャにすればランタイム(J…

Scala 2.7.1.final

リリースされた模様。

Genericsはデカい仕様なのか否か

でもJ2SE 5.0のgenericsでもはや最小の仕様なんてのは消えちゃいましたから、いっそのことより便利になるようにシンタックスシュガーでもなんでも入れればいいと思う。キーワードを加えるとなったら、プロパティ構文とか真っ先にいれてほしいですよ。getter/…

新しいScala Eclipse Pluginの補完が凄い

ここの動画を見て、ちょっと試してみたんだが、なかなか頑張ってる。凄いのは、implicit defによる暗黙の変換をちゃんと見て補完候補を表示しているところ。ここでは、レシーバがSeq[Int]である場合にのみ、sumメソッドを追加するように定義してあるのだが、…