コミュニティ: mixi || ☆たるさんのパソコンフィールド | Ando's Processor Information Page | Google IT勉強会カレンダー
番組: || NHK SPECIAL | TOP RUNNER | BSマンガ夜話 | BSアニメ夜話 | NHKアニメワールド | テレビ東京 - Anime X-press
みずしまさんに触発されて....
for(Integer n : map(list(1, 2, 3), new Fn<Integer>() {
public Integer $(Integer n) {return n * n;}})) {
System.out.println(n);
}
わけわか(w.もうちょっと短くなるかな.なんかLispぽい.
ちなみにlistはListを作るメソッド,mapは配列の置き換えをするメソッドです.
Rubyで書いたらこんな感じ.
puts [1,2,3].map! {|n| n * n}
実行結果は,どちらも同じ.
1 4 9
モノリスの比率ですな.
ちなみにユーティリティメソッドは以下のような感じ.
static <T> List<T> map(List<T> list, Fn<T> fn) {
for(int i = 0; i < list.size(); i++) {
list.set(i, fn.$(list.get(i)));
}
return list;
}
static <T> List<T> list(T... values) {
List<T> list = new ArrayList<T>(values.length);
for(T value : values) {
list.add(value);
}
return list;
}
追記: 「関数プログラミング - val it : α → α = fun:」で関数プログラミング的ではないとのこと,確かに(^^;.まぁRubyの破壊的メソッド(map!)で例を出しちゃったので,これはこのままで,各自読み替えてください.
いづれにしてもanonymous classを書かなくちゃいけないので,記述が冗長すぎる気はします.
追記2: 元ネタは「Onion開発日記(2007-05-21) - [Java]Functional Programming Library in Java (1)」です.Generics,可変長引数,anonymous class,static importを駆使していろいろやっておられます.
その他今回の例でも使ってますが,Boxing/Unboxingを使うと,数値もシームレスに関数プログラミングできますが,これはこれではまる要素一杯です.
初期のインターネットでは標準だったReal Videoはもう消えたも同然で,Windows Media Video系(含むVC1)とMPEG4, H.264あたりで大体決まってしまいましたね.
一方,MPEG4, H.264系統は結構複雑な路線を迷走中で,コンテナ(ファイル形式)がAVIとQuickTime,Native MPEG4などといろいろあるので,プレーヤのサポートが大変のようです.
他のコンテナでは,OGM(Ogg Media)やMKV(Matroska)などもあるんですが,一部のマニアで使われているだけで,事実上マイナーな存在だと思います.
ちなみにBlu-rayやHD DVDのコーデックはMPEG2, H.264/AVC, VC1のいづれか選択できるようになってますが,この中にはもちろんReal Videoには入っていません.
今後はH.264/AVCが主流になると思います.画質に関してはここ4年ほどで低ビットレートから高ビットレートのものまで大幅に改善され,映画などのMPEG2じゃなきゃといわれる分野までH.264/AVCが入ってきているようです.
特にハードウェアエンコードが充実してきました.
一方コンシューマ用のハードウェアデコーダはまだまだで,なかなか普及していないような気がしますが,ここ1年〜4年で普及するんじゃないでしょうか.
PCではSD画質ならそのまま再生できますが,HD画質はまだ無理で,GPUを使ったデコードでなんとか間に合っている程度です.CPUのパワーがぜんぜんたりませんから,しばらくこの状況は続くと思われますが,次世代GPUはH.264などのVideoデコードのアクセラレーションを持っているので,デスクトップPCに限り再生できる環境を構築できるでしょう.
というわけで,あと来て欲しいもの.やはりコンシューマ用のハードウェアエンコーダーでしょう.特にHD画質なもの(SD画質なものは既に商品化済).
まぁもしかしたら,次世代GPUでクラスタ組んでエンコードするマシンを誰か作りそうな気がしないでもありませんが,キャプチャI/Fとの通信がボトルネックになりそうなので実現は結構困難ですよね.
一般的にマトン(mutton)って言ったら「羊の肉」なんだろうけど,まぁ「オートマトン(automaton)」が語源でしょうねぇ.
なお最初出現する時に「郵」の字が裏側に反転していたのはかなり意図的で郵便局の旧キャラクタ「ポストン」にあえて似せてあるというのは公然の秘密のようである〠.
C++とかはともかく、元記事で話題になってる純粋なCってそんなに使うもんなんですか?
#計算機業界は専門外なんでよくわからん。
libstdc++.so が収まるほどストレージのない環境は多いんですよ。
こういうリンカローダが動く環境が当然と思っている人が多いあたり、 スラドで組み込みの話をする困難を強く感じます。
ワラタ(w.さすがにリンカが使えないほど小さなプログラムは組んだ事がない.ああR8Cとかメモリが極端に少ない組込CPUとかたまにアセンブラでいじってるけどリンカは使ってるよな.
あと,「ODBMSは?」って意見もあった.使われているところでは使われているけど,結局RDBMSに戻っているような気がする.それからリレーショナルでないデータベースが槍玉に挙げられているのが納得できない(w.
値段と大きさがボトルネックとの事.
なんか買いたくなっちゃった.EE/GSなしバージョンが出るまで待ちますかね(いつのことやら).
やること、い〜っぱい(´д`)。
おお。一瞬 Java だか何だかわかりませんでした (笑)。
たまーにrmvbはみますけどね.
MadBooさん:<br>新文法を駆使するとこんな感じに.やりすぎですね(^^;.
bravotan:<br>> たまーにrmvbはみますけどね.<br>もうそういうのは(意識的に)見ないかも.Real Playerも削除しちゃった(^^;.
動画の拡張子って今じゃほとんど意味がなくなったよなー.<br><br>「そうよ,みんなflvになってしまえっ!」<br><br>最近はVLC Portableが手放せません.
bravotan:<br>> 動画の拡張子って今じゃほとんど意味がなくなったよなー. <br>確かに,私はVLC好きなのでWindows Media Playerで見れなかったらVLCでみちゃいますね.<br>> 「そうよ,みんなflvになってしまえっ!」 <br>わはは,しかしFLV(8)以降じゃないと画質は我慢できないかもしれませんねぇ(しかしOSS勢は弱いorz).