C#

クエリ式のパフォーマンス

きっかけは↓の記事なんですけども、クエリ式のパフォーマンスについての話を少々。 クエリ式で総当たり - NyaRuRuが地球にいたころ先に、今日の話のまとめに相当するソースファイルを掲示↓。 http://ufcpp.net/study/csharp/source/Comprehension.csC# 3.0 …

標準クエリ演算子

C# によるプログラミング入門の LINQ 関連の部分を久々に更新。2chのLINQ関連スレが最近盛り上がってる(>>1 さんが1人頑張って盛り上げてようとしてくれてる)んで、それに触発されて、標準クエリ演算子の辺りを拡充してみた。LINQの資料を見たばかりのころ…

Dynamic Lookup

C#

http://blogs.msdn.com/charlie/archive/2008/01/25/future-focus.aspx C# 開発チームで、将来的に導入を考えている新機能について、今後(月一くらいで?)連載するみたい。新機能の内容に関しては、まだ決定事項ではないし、概要のみ。初回は Dynamic Look…

var の是非

C#

VS 2008 / .NET Fx 3.5 / C# 3.0 の日本語正式版も出たということで、C# 3.0 で導入された var(型推論)の是非をめぐって先月半ばごろに軽い論争が起こってました。正月休みに入って時間もあることだしちょっとまとめてみようかと。 私見としては 最初に私…

Parallel Extensions をようやく使ってみた

Microsoft Parallel Extensions to .NET Framework 3.5 CTP をようやくインストール。要するに、Visual Studio 2008 をようやくβ2から RTM にインストールしなおしたんですけども。「並列化するだけなら簡単で、並列化でパフォーマンスをあげるのが難しい」…

匿名型の Generic リスト

C#

C# 3.0 の匿名型&型推論、最初はものすごく気持ち悪かったけども、最近どんどん変態的な使い方を覚え始めたかも。LINQ では、匿名型の IEnumerable を使うことになるわけですけども、たまに、空のリストを用意して、それに後から匿名型の要素を追加したい場…

ラムダ式、最初に見たときは変態的だと思ったけど、もうずいぶん染まった

C#

要素の削除 - 匣の向こう側 - あまりに.NETな ↑これに対して、C# だと標準で機能そろってますよね。 using System; using System.Collections.Generic; class Program { static void Main(string[] args) { var numbers = new List<int> { 0, 1, 2, 3, 4, 5, 6, 7</int>…

LINQ to SQL 関連記事

ようやく LINQ to SQL がらみの記事を書けた。(予定ではもう1ページ書くつもりなんだけど。) [雑記] O/R インピーダンスミスマッチ - C# によるプログラミング入門 | ++C++; // 未確認飛行 Cもっと前から LINQ to SQL ネタで何か書こうと思ってたんですけ…

CodeDom + ラムダ式 + WPF

この前の連休中作ってた Expression Tree の記号計算ライブラリのその後。連休中では終わらなくてちょっと未完成部分が残ったんだけど、形になってきたんでここいらで。最近流行の動的計算、C# 3.0 のラムダ式、WPF で 3D と、なかなかいい感じの話題を盛り…

System.Linq.Expressions.Expression の問題点

さらにいろいろと Expression Tree を触ってみて思ったこと。 一度 Expression 型を自前のラムダ計算クラスに変換して、自前のクラスで微分して、最後に Expression に戻して Compile する方がいいかもしれない。ラムダ計算するなら、やっぱり↓みたいなこと…

Code DOM で Expression を動的生成

昨日作った C# 3.0 の Expression Tree の記号計算ライブラリを更新。http://ufcpp.net/study/csharp/source/Differential.zipSystem.CodeDom とか Microsoft.CSharp あたりの機能を使って、文字列から動的に Expression を作るプログラムを作ってみた。ZIP …

C# 3.0 の Expression Tree で Symbolic Calculation

たまには C# 3.0 / .NET Framework 3.5 らしいネタを。 と思い立って、Expression Tree を(記号的に)微分するライブラリ作ってみた。 式木(Expression Trees) - C# によるプログラミング入門 | ++C++; // 未確認飛行 CLINQ 関連は LINQ to Object ばっか…

LINQ をリスト内包記法として使う例

リストの内包表記(list comprehensions) - ++C++; // 管理人の日記で書いたリスト内包の利用例として、ふと思いついたことをやってみる。 3次元上の格子点を平面に投影するっての。 3次元の格子点って言うと、 で、とある平面への投影関数を Pr とでも置いて…

続 イテレータでマイクロスレッドもどき

C#

一昨日作った「C# 2.0 のイテレータでマイクロスレッドもどき」、やっぱりぱっと見れるデモが欲しいよなぁってことで、XBAP 化してみた。http://ufcpp.net/study/csharp/demo/FullBullet/FullBullet.xbap.NET Framework 3.0 が入ってる環境なら見れるはず。…

イテレータでマイクロスレッドもどき

C#

http://f27.aaa.livedoor.jp/~thdmhul/pukiwiki/pukiwiki.phpにインスパイアされて、C# 2.0のイテレータ構文を使ってマイクロスレッドもどきを実装してみた。 ↓ [サンプル] イテレータとマイクロスレッド - C# によるプログラミング入門 | ++C++; // 未確認…

C# 3.0 のラムダの負の側面

http://diditwith.net/2007/09/25/LINQClosuresMayBeHazardousToYourHealth.aspx 問題 まず、上記 URL の(前半部分の)要点だけ抜き出すと、 var filter = "Compare"; var query = from m in typeof(String).GetMethods() where m.Name.Contains(filter) se…

キャストと as

C#

2chがプロパイダ規制食らってて書けないからここにメモっとく。 キャストと as の速度の問題。 普通のキャストと as は、ちゃんと型変換できるなら得られる結果は一緒で、失敗時には、 キャスト: 例外発生 as: null を返す で、例外の throw ってのはかな…

C#で書かれたOS

C#

今日プログラム板で見かけたネタ。自分用メモ書き。 Singularity http://research.microsoft.com/os/singularity/ MS Research の研究用プロジェクト。システム、ツール、言語の開発等含めて、ディペンダブルな OS 開発が目的。 過去のしがらみ断ち切って、7…