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

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…

もっとオブジェクト初期化子

C#

昨日、nsharp さんにコメントで教えてもらった、 > initializerはクラスのフィールド宣言部でも使えることに最近気づいたり。 が、使ってみたらとても印象的だったのでちょっと長めのコードを載せてみます。デザイナで生成したコードを切り貼りして作った恣…

2008 SP1 はいつ?

http://blogs.msdn.com/sreekarc/archive/2008/01/21/c-debugging-improvements-for-vs-2008-sp1.aspx> it might be sometime this year.

オブジェクト初期化子とコレクション初期化子

C#

なんだか LINQ to Object を使っていて、従来はごちゃごちゃした手続きだったものが、きれいな一つの写像を表現する式になったりするなぁと不思議に思ってたんですが、縁の下の力持ちが誰なのかわかりました。オブジェクト初期化子とコレクション初期化子が …

もう一つの Enum

C#

id:siokoshou:20080127:p2 の菊池さんのコメントを受けて、速度を改善した Enum を考えてみたんですが、これでいいような気がしました。 public static class Enum<T> where T : struct { private readonly static T[] values; private readonly static string[</t>…

Enum クラス

C#

id:siokoshou:20080124 に続いて再び enum ネタ。偶然すばらしいものを発見してしまったので。ネタ元 : http://devlicious.com/blogs/christopher_bennage/archive/2007/09/13/my-new-little-friend-enum-lt-t-gt.aspxこないだは enum の具体的な実装、例え…

次期 C# の新機能 Dynamic Lookup

C#

http://blogs.msdn.com/charlie/archive/2008/01/25/future-focus.aspx一言で言うと late binding。動的言語と COM とリフレクションを呼ぶのが簡単になるそうな。呼ぶ側から見るとこれらが同じ問題を抱えてたという目の付け所がおもしろい。

bc はインタプリタだった

割りとどうでもいいことなんですが、今のいままで知らなくて、びっくりしたので記念に書いときます。 Unix の bc コマンドって知ってます?そう、コマンドラインの電卓です。あれ、実はインタプリタだったんですね。インタプリタと言ってもピンキリだけど、…

配列やコレクションやIEnumerableなどの汎用 IsNullOrEmpty

C#

id:siokoshou:20071208 の LINQ の限定子に重要なもの一つ追加。 Any() ってシーケンスに要素が含まれているかどうかどうかチェックする演算子でした。 Console.WriteLine( new int[] {}.Any() ); // false Console.WriteLine( new int[] { 1 }.Any() ); // …

Enum と拡張メソッド <3

C#

Enum と拡張メソッドって相性がいいですね。MSDN ライブラリでも取り上げられてますけど。enum MyEnum { A, B } と定義した enum を文字列化するときに日本語にしたいことがよくあって、static な関数を書いてたけど、拡張メソッドでちょっとだけきれいにな…

more Dynamic LINQ

C#

今日、東京に来たらしい ScottGu さんの Dynamic LINQ に対抗してみました。動的に LINQ クエリーを組み立てる例はあちこちでたくさんの人がそれぞれ違う方法でやってますが(^^;、末席に加わります。動的といっても Where に渡す条件を式木で組み立てて渡す…

.NET Framework 3.5

何かと必要になるのでリンクをメモ。Microsoft .NET Framework 3.5 (IA64 のみ追加で Microsoft .NET Framework 3.5 日本語 Language Pack )# もしかして IA64 以外は「日本語 Language Pack」は一つ目のパッケージに含まれてる? → Yes (正確には一緒にイン…

脱線しすぎた

C#

イベントベースの非同期パターンってどうやって元のスレッドで完了通知を実行してるんだろ? ↓ Control.BeginInvoke もどうやってるんだろ? ↓ WinForm なら、ウィンドウにメッセージ投げればできるのかも ↓ これって .NET 以前でも同じことだよなぁ ↓ Advan…

object と呼ぶのは詭弁のような気がしてきた

C#

↓これ、最近書いたクラスなんですが、このインスタンスを object モノ と呼ぶのは無理があるよね。 using System.Collections.Generic; using System.IO; namespace TMR.Vanapedia.Util { /// <summary>FileInfoをファイル名で比較するクラス</summary> public class FileInfoNa…

.NETのソースコード

http://blogs.msdn.com/sburke/archive/2008/01/16/configuring-visual-studio-to-debug-net-framework-source-code.aspx一日送れですが、ソースコードキター!と思ったら Express には来てなかったw 財政難ですが、ステップ実行したいなぁ。2月を待ちます。

今年も…

今年もよろしくお願いします。今頃になって(^^; そして今日は一日アポーの話題の日ってことで。http://japanese.engadget.com/2008/01/15/macbook-air-multi-touch/ マルチタッチってプログラミングでどう扱うんだろ。ってか、欲しいなぁ。でもちょっと高い…