tw.log

https://twitter.com/kinaba のログ (twilog の方が便利です。)

<<newer (latest) older>>

20170315 11:20 (何amazonにもう出てるの。宣伝ツイートの準備がまだできてないぞ。ちょっと待って)
20170315 16:39 【業務連絡】3/14の0:00頃からついさっきまでkmonos netのメールアドレスがエラーでメールをハネるようになってしまっていました。何か重要なメールを送ってくださった方いらっしゃいましたら再送ください。すみませんすみません
20170315 23:18 RT @kinaba: とりあえず @niha28 さんに、全人類が読むべき書籍第2位である "Purely Functional Data Structures" http://bit.ly/4rdXiX を読まねばならぬという事実を伝道した
20170315 23:19 RT @kinaba: 大変やる気のない感じで 『20分でわかる Purely Functional Data Structures』 [PDF] http://www.kmonos.net/pub/Presen/PFDS.pdf を発表した
20170315 23:19 RT @kinaba: Purely functional data structures 翻訳本出すとよいですよ是非!!!というのは割と出版社の人と話す機会があるたびに言っているけど、その後話が進んだ気配があったことがないや (´・ω・`) https://t.co/CCO…
20170315 23:20 ……というわけでお待たせしました。名著 "Purely Functional Data Structures" を @mametter と組んで日本語訳しました。『純粋関数型データ構造』4月末発売です。 https://t.co/KLYcq68xSD
20170315 23:21 (挿絵がソードマスターヤマトだったりはしません)
20170315 23:24 https://t.co/KLYcq68xSD 純粋関数型データ構造というのは、いわゆるキューやリストやハッシュマップ等ですが、純粋関数型、つまり一度作ったデータを絶対書き換えない、C++やJavaでいうと全てがconstやfinalの状態でそういうデータ構造を設計するお話です。
20170315 23:24 データ変更系の操作は全て、元オブジェクトは残したまま、新たに別の"変更後"オブジェクトを作って返す形で実現します。ただし元のと新しいので極限までデータを共有する超絶技巧で計算量を削るのがポイント。純粋関数型赤黒木などは完全に普通ですが、結合O(1)の純粋関数型リストなど技が冴える
20170315 23:25 https://t.co/KLYcq68xSD 競技プログラマーの皆様へ:一冊丸ごと永続データ構造の専門書です。永続マスターになってライバルに差をつけよう!(?)個人的には、amortized計算量の解析手法とかも自分はこの本の原著で学んだので、その辺りも面白いです。
20170315 23:25 使ってるプログラム言語がStandard MLという、馴染みのない人には馴染みがない言語なのですが、まあ擬似コードと割り切って読んでしまえば割と読めると思っています。しかしできれば発売までにC++/Java使い向け、対PFDS限定最速StandardML解説記事的なの書きたい…
20170315 23:27 https://t.co/KLYcq68xSD 面白技術書乱読派の皆様へ:典型的な教科書等であまり見ないデータ構造が沢山載ってて、必ず新鮮さがあるはず。単なる羅列でなく、汎用技法を導入しては前章の実装に適用して新しい強化データ構造作るという系統だった構成の鮮やかさもお勧めの点です
20170315 23:27 この、ものすごくシステマチックにデータ構造を追い詰めていく構成が格好良すぎるというのが自分がこの本が好きな一番の理由かもしれない。
20170315 23:41 @kinaba (筆が若干すべったけど、いわゆる世の中で期待されるようななんでもO(1)になるハッシュマップの実装はこの本ではやっていない)
20170315 23:49 純粋関数型データ構造、技を駆使しないと破壊的書き換えを使うデータ構造と対等に戦えないという点は嬉しくないんですが、逆にただ一点、コピー相当の操作だけは確実に最強でO(1)になる (どうせ絶対書き換えないのでポインタだけコピーすればいいので) というのが自分としては物凄く嬉しい。
20170315 23:49 データ構造を書き換えつつ探索や階層構造の走査をしているときに、バックトラックのためにundo情報とっとくとかせず全部気軽にコピーすればいいし、[[0]*3]*3で作った2次元配列の1要素を書き換えたつもりが色々同時に書き換わった事故なども起こりえない。超素直にプログラムが書ける。
20170315 23:49 ただ、コピー以外の操作が遅すぎるようではやっぱりちょっと困るので、超素直にプログラムが書ける理想の世界を高速化するための手段として純粋関数型データ構造の話は夢があるなあと思っているのです。

<<newer (latest) older>>

presented by k.inaba (kiki .a.t. kmonos.net) under CC0