ref: 未来の国のアリス - d.y.d. で紹介されている implicit future が Ruby に欲しい! # promise を作る x = Promise.new a = [1, x, 2, x, 3, x] # 今はまだ値になっていない p a #=> [1, _promise_, 2, _promise_, 3, _promise_] # この promise は 42 に決めた! (代入ではないよ) x === 42 # x の箇所は勝手に 42 になっている p a #=> [1, 42, 2, 42, 3, 42] というのも、これがあれば Ruby でパターンマッチができる気がするんですよね。こんな感じに。 # 何にでもマッチする箇所には _ と書く (実体は Promise.new) def _ Promise.new end # + と定数だけからなる抽象
前の記事 ネット時代で「読む量」が急増:研究結果 「光合成は量子コンピューティング」:複数箇所に同時存在 2010年2月10日 Brandon Keim Image credit: Bùi Linh Ngân/Flickr 光合成は、植物や細菌が用いる光エネルギーの捕捉プロセスだが、その効率の良さは人間の技術では追いつかないほど優れている。このほど、個々の分子に1000兆分の1秒のレーザーパルスを当てる手法によって、光合成に量子物理学が作用している証拠が確認された。 量子の「魔法」が起きているとみられるのは、1つの光合成細胞に何百万と存在する集光タンパク質の中だ。集光タンパク質は、[集めた光]エネルギーを、光子に感受性のある分子内で回転している電子から、近くの反応中心タンパク質へと輸送し、そこで光エネルギーは細胞を動かすエネルギーへと変換される。 この輸送の過程で、エネルギーはほとんど失わ
たまたま、"What is a logic, and what is a proof?" (April 8, 2005) by Lutz Strassburgerという論文を見つけて、読んでみました。比較的短い(印刷して12P)解説的な論文です。表題のとおり、 論理とはなにか? 証明とはなにか? という2つのテーマを扱ってます。後半1/3程をしめる「証明とはなにか?」が僕はよくわからんかったのだけど、前半は、「論理(a logic)は圏だよ」という主張をとても上手に説明しています。で、まー、この前半部分を紹介しようかと。 ただし、以前に書いたエントリーを参照しながら私見を交える(私見のほうが多いかな)ので、上記論文の忠実な紹介にはなってません。気になる方は原文を読んでくださいね。 第1回(このエントリー) 第2回 第3回 第4回(完) 今回の内容: プレ順序集合 論理とはプレ順序集合なり
full abstraction ... λ計算とかπ計算とか表示的意味論のお話ではよく出てくる概念なんですが、未だによくわからないなーとつぶやいていたら id:sumii さんに教えていただいた。 もったいないのでここに残しておきます。 full abstraction の私的な説明 計算体系Aと計算体系(もしくはモデル)B があるとして、 その間の変換を C[・] : A -> B、 〜A と 〜B をそれぞれの計算体系(かモデル)における等価性とします。 すべてのAの項 ta1とta2について C[ta1] 〜B C[ta2] ならば ta1〜A ta2 ... adequacy(soundness) ta1 〜A ta2 ならば C[ta1] 〜B C[ta2] ... completeness この両方が成り立つとき、 変換は fully abstract であるといいます。 た
■ [ruby] gem-depcleanについて、とりとめもないこと RubyGemsをgentooのPortage風に管理するプラグイン、gem-depcleanをid:ursmさんが公開されています。 gem-depclean - ursmの日記 やりたいことは 依存元がなくなったgemの削除 必要なgem・versionだけ残すgem clean の2つですよね。 前者について これはRubyGemsの機能として含まれるべきでしょう。uninstallの時に、「それが必要としているが、他から必要とされていないgem」を 同時に消すオプションがあれば良いんですよね。 後者について 「gem clean railsしたら、昔書いたアプリで使ってたバージョンが消えて困った」とかの経験は僕もあります。 「このバージョンはまだ使ってます」フラグを立てることが出来たら良いのかも。(aptitu
■ [Haskell] The Typeclassopediaを訳しました The Monad.ReaderのIssue 13に掲載されたThe Typeclassopediaという記事が、Functor, Monad, Monoid, Applicative, Foldable, Traversable, Arrowといったような型クラスについて良くまとまっていて、そのあたりを知りたい時の取っ掛かりになりそうだったので翻訳してみました。 作者のBrent Yorgeyさんからも許可がいただけたので公開します。翻訳に慣れていないので変な日本語(特に専門用語の日本語訳はかなり怪しい)があったり、そもそも間違っていたりするかもしれませんので、何か見つけたらコメントを頂けると助かります。 ■ [Haskell] The Typeclassopedia by Brent Yorgey <first
『代数学は得意だけど,数学基礎論とかさっぱり分からない.論理とかマジイミフ』そんなアナタを対象に,ゲーデルの不完全性定理を解説してみよう! のコーナーです. 論理学と代数学(可換環論)との対応については,檜山さんによる素晴らしい記事があります: 古典論理は可換環論なんだよ - 檜山正幸のキマイラ飼育記 ただ,『論理学といえばまずコレ!』とも言うべき『ゲーデルの不完全性定理』の代数学的表現については書かれていないようなので,ちょっぴり魔が差して,ここでゲーデルの不完全性定理の代数学的な表現を与えることにしました. だが,単にゲーデルの不完全性定理を代数学で表現するだけじゃあつまらない……倍プッシュだ……!というわけで,プラスアルファとして,その他色んな分野との関わりを含めて紹介します. 0. 理論は対応する代数を持つよ!: リンデンバウム代数 まず,論理学と代数学を対応させる第一の架け橋
http://twitter.com/ckuwata/status/4939817655 : 檜山さんとのミーティングは半分〜 1/4ぐらいは計算機科学の講義なのだが、今日は圏論とデータフローダイアグラムと「真のフローチャート」と「真の goto」についてだった。関連する論文を見つけたので読んでるが、 160p 近い英語論文で早くも泣きが入りつつある。 Kuwataさんが謎のような言葉をつぶやいているのだけど …… フローチャートとgotoについては、「イヂメられて石投げられるから人に話しちゃダメだよ」と言っておいたんだけどなぁ。まーいいや、この機会に述べておこう。おおっと、石投げるのはちょっと待ってよね。 内容: 口にしただけで忌み嫌われる フローチャート研究の歴史(断片) フローノミアルとネットワーク gotoと圏論的なオペレータ 僕の動機と根拠 マゾ・テスト 構文の問題とかナニヤラ
_ 対関数 sin-x さんに教えてもらう。 http://ja.wikipedia.org/wiki/対関数 よく整数2つの点とかの hash 値をどう計算するか悩むわけなんだけど、 本質的にこの関数はちょっと遅そうだけど、悪くないかも、ね。 ちょっとやってみた。 適当な値域の乱数のペアを大量に作って適当に突っ込む。 http://github.com/shinh/test/blob/da1e28b9fd201ca2d203d3e187cc280e9a8b9f9a/bijection_hash.cc ハッシュ関数としては単なるかけ算、 よくある x + y * prime みたいなヤツ、 それとこの対関数、をそれぞれ使ってみた。 最初の立ち上がり部分は値域がほぼ埋まってるのであんまり関係ない。 単なるかけ算は明らかに悪い。 対関数は密度がある程度あるうちは衝突が少ないおかげかちょっと早そ
■ [haskell] モナドって結局なんなの 社内勉強会でモナドについて発表しました。分かった気がするたびにすぐに手からすりぬけてしまう、それがモナド…! 追記: モナドそのものが何なのかとか考えないほうがいいんじゃないですかね! [Twitter / いーぐるとまとより引用] まさにその通りだと思います(笑)。IOの使い方、Maybeの使い方、Stateの使い方などを押さえておけば、 中がどうなってるかなんて知らなくても大丈夫。 でも、モナドの持つ「なんか秘技がありそうな感じ」が、中を覗いてみたくさせるんですよね。 この、どこまで掘っても自分の知らないことが出てくる感じがHaskellの魅力なのかも。 Haskell の本当にすごいところは、「なぜなに」を問いかけることでいつまでもプログラマが成長できるところにある。 [ふぁぼったー / ikegami__より引用] 一問一答 Q. モ
原文(投稿日:2009/09/25)へのリンク REST-*の発表とそれに対するコミュニティの反応をとりあげたInfoQのREST-*.orgに関する最近の記事は多くの反響を得た。フィードバックの結果として、REST-*にも 変更が加えられた。Infoqは、REST-*のリーダーであるBill Burke氏にインタビューを行い、さらに多くのことを学ぶ機会を持つことができた。 InfoQ: あなたのバックグラウンドについて、少しお話いただけませんか? 今は、Red HatのJBoss部門でフェローをやっています。過去には、クラスタリングやEJBコンテナ、AOPの実装や、アプリケーションサーバのカーネルの開発を行ってきました。現在は、RESTEasyプロジェクトのリーダーをやりながら、REST-*.orgを運営しています。そして、何冊かの本を書いています。2009年の11月にはJAX-RSに関
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く