2008-02-01から1ヶ月間の記事一覧

手軽にアニメーション

WPF

WPF のアニメーションの簡単さがスゴイ。マウスが乗ったらミョンと大きくなって、はずれたらミョーンと縮むアニメがこれだけでできちゃう。 <Style x:Key="PhotoItems" TargetType="{x:Type ListBoxItem}"> <Setter Property="MaxHeight" Value="150" /> <Setter Property="MinHeight" Value="150" /> <Setter Property="MaxWidth" Value="150" /> <Setter Property="Margin" Value="50" /> …</setter></setter></setter></setter>

条件判断

WPF

WPF のうれしい機能はたくさんあるけど、今夢中なのがデータテンプレート。見た目の雛形を定義しておけば、バインドした CLR のオブジェクトなどを表示してくれます。従来ならユーザーコントロールを書いて、その中で細々と表示をカスタマイズしてた部分が X…

むずい

WPF

最近 WPF で遊んでるんだけど、ムズイね、これ。文字のセンタリング程度で四苦八苦したり…。エッセンシャル WPF を読みつつやってますが、いろんな GUI の良いとこ取りで現代的な理想の GUI って思想には共感できるものの、とっつきにくい!簡単に使えるよう…

.NET 3.5 Client Product Roadmap

http://weblogs.asp.net/scottgu/archive/2008/02/19/net-3-5-client-product-roadmap.aspxvice president になったらしいスコットガさんの blog で、すばらしい発表が! .NET Framework セットアップの改善 コールドスタートアップ時間とメモリ使用量の改善…

PageDefrag

ブクマしただけじゃもったいない気がしたのでこちらにメモ。http://www.microsoft.com/technet/technetmag/issues/2007/09/UtilitySpotlight/default.aspx?loc=jp/ページファイルやレジストリハイブ等々、ロックされてて普通じゃデフラグできないファイルを…

Y はまわる

今回の Y ブームの発端が id:taguo さんで、さらにそのきっかけとなった一部が自分のエントリだったようです。今回のブームでλ計算をちょこっと勉強してみたので、これぞまさに再帰ですね! 飽きたと言っておきながらプチ数学ブームは、人物史として形を変え…

リファレンスコードをネットにアクセスせずにステップ実行する

昨日のエントリの NetMassDownloader で公開されたコードを全部落として、ネットアクセスなしでリファレンスコード内をステップ実行する方法のメモ。一行実行するたびに地球の裏側までリクエストが飛んでいって帰ってくる(?)のを待つ必要がなくなり、サクサ…

ソースコードを一気にダウンロード

http://www.infoq.com/news/2008/02/Framework-Source http://www.codeplex.com/NetMassDownloader こ、これは…。ついでに2005対応だそうで…。いいんだろうか。 ところで、生のソースコードおもしろいですね。こんなことしてたのかーと、ついつい読んでしま…

コレクション初期化子と ICollection

C#

おもしろい記事を見つけて読みふけってしまったので、おもしろいとこだけぎゅぎゅっと抜粋。 via http://blogs.msdn.com/madst/archive/2006/10/10/What-is-a-collection_3F00_.aspxコレクション初期化子の設計話。なんで「IEnumerable + Add メソッド」なん…

λ計算で 1+2

すっかり飽きる前にλ計算してみます。お題は 1+2 が 3 になるかどうか。 チャーチ数と足し算の定義はwikipediaのものを使います。 1 := λf x. f x 2 := λf x. f (f x) 3 := λf x. f (f (f x)) PLUS := λm n f x. m f (n f x) PLUS 1 2 をβ変換(引数に変数を…

式木の ==, Equals

C#

Expression<Func<int, int>> expr = x => x + 1; Expression<Func<int, int>> expr2 = x => x + 1; Console.WriteLine( expr == expr2 ); // false Console.WriteLine( expr.Equals( expr2 ) ); // false Console.WriteLine( expr.ToString() == expr2.ToString() ); // true なるほどねー(</func<int,></func<int,>…

サンタクロースは

いるよ

飽きてきた

λにはじまり、帰納的関数とかゲーデルとか集合とかプチ数学ブームしてました。でも、難しいことは理解できず、早くも飽きてきた…。プチリンク遊び Console.WriteLine( "siokoshou" .OrderBy( c => c ) .Distinct() .Aggregate( "", ( s, c ) => s += c ) ); …

デリゲートと式木の文字列表現

C#

ふと思いついて試してみました。 using System; using System.Linq.Expressions; class Program { static void Main() { // コンパイルエラー : 演算子 '.' を 'ラムダ式' 型の // オペランドに適用することはできません。 //Console.WriteLine( ( x => x + …

λの世界

λ計算ってなんなの?って気になってたんだけど、「計算とは何か」ってことを研究するための道具ってことなのかな?数学で扱う関数の要素を抽出して作られたものがλ計算だそうな。「計算とは何か」なんて考えたこともなかった…。 Yコンビネーターってなんなの…

数字も関数で

Y の a については正確な理解はひとまずあきらめました(+_+) 頭から煙が出そうになるw 高階関数 + 再帰で、しかも複雑な式がどう展開されてるか追いかけるのは困難…。Haskell みたいな必要なところを必要なだけって評価のほうが脳に優しいのかも、とかはじ…

Y

あーそうか。λの世界は関数に名前がない世界なのか! f(x) = x + 2 を λx. x + 2 と書くのは名前を消してるのか!今ごろそこに気づいた。 なので、YM = M(YM) と書くのが反則で λy.(λx.y(xx))(λx.y(xx)) ならOKなのかー。やっと疑問が解けた。参考: http://b…

`````````````.H.e.l.l.o.,. .w.o.r.l.d.!

猪股さんの「C#でYコンビネータ」の記事とそこからリンクされてる記事のたくさんの解説でλの世界に入門してみました。本も借りてきて読んでますが、これは厳しい((c)ひげぽんさん)って世界でまだ全然さっぱりですが、その途中で出会った不思議な言語 Unlambd…