ようこそ。睡眠不足なプログラマのチラ裏です。

LINQ

F#でRxる。よく訓練されたF#erはコンピューテーション式をつくる。

いにしえからの言い伝えによると、よく訓練されたF#erはコンピューテーション式をつくるそうです。 Select Many: Reactive Extensions’ Mother Of All Operators (Chaining). お、SelectManyですね。 なるほどなるほど。計算を繋ぐもの。モナドですか。そこ…

F#で言語指向プログラミング(LOP)のアプローチ。Seqを扱うための簡単なワークフローを作って、ワークフローを味見してみよう。

F#では「ワークフロー」という機能を備えることで、言語指向プログラミング*1のアプローチがし易くなっている。 これは開発者にメタプログラミング、DSLといった柔軟性を備えたライブラリを作成する機会を、 より多く与えてくれるのではないだろうか。この機…

ケブンッリジ関数でどう書く?orgデビューしてみた

微妙に風化したお題ではありますが、どう書く?orgデビューしてみました。 using System; using System.Linq; namespace ConsoleApplication1 { class Program { static void Main() { var str = @"こんにちは みなさん おげんき ですか? わたしは げんき …

はてなハイクAPIを使ってみよう(LINQ to XML)

C#から「はてなハイクAPI (http://h.hatena.ne.jp/api)」を利用するサンプルを作りました。 他の言語のサンプルは割りとあるようですが、C#ではなかったようなので。 画像を添付した投稿については面倒くさいので直接はサポートしていませんが、 呼び出し側…

レーベンシュタイン距離とN-gramモデルのアルゴリズム。それは擬似Google Suggestっぽい何か。

きっかけはレーベンシュタイン距離 - shin5papaの日記 http://d.hatena.ne.jp/shin5papa/20090311/1236745197 レーベンシュタイン距離とN-gramモデルで、擬似的なGoogle Suggestレーベンシュタイン距離を使うことによって、擬似的にGoogle先生の「もしかして…

型なしDataSetと型付DataSet、そして片想いORマッピング的な何か。

ネタ元 山本大@クロノスの日記 - アンチ型付DataSet派の自作ORマッピングよりなぜ型付DataSetを使うのか、型なしDataSetは使わないのか型付DataSetについては、嫌な思い出も少なくないので不満がないわけでもないのだけど、 常識的に考えて「型付DataSetを…

ニコ動APIとLINQ to XMLでごにょごにょしよう

ニコニコ動画APIで動画情報とかサムネイルとかコメントとかFLVファイルとかいろいろ取得したりする 手抜きで作りかけの雑なC#のコードを今更ながらあげておきます。 いろいろダメなところ(手抜き)があるので、もし参考にするのであれば、そこん所ご注意くだ…

特定のインターフェイスを持つプラグインを取得

以下のような感じで、特定のインターフェイスを持つプラグインを取得するメソッドを作ってみた。 複数の種類のプラグインを利用するアプリなんてそうそうない気がしないでもないが、 こんな感じでひとつ作っておくと便利。やっぱLINQとyield使うと、かなりす…

依存性をクラスごとに構成ファイルに定義。はい、DIです。

マイクロソフトから提供されてるEntLib*1に含まれている DIコンテナを弄ってみた。 思っていたよりもいい感じにDIできますね。うんこれは便利。 Microsoft Enterprise Library 4.1 – October 2008 構成ファイル(*.config)から手軽に依存性の注入をしようDIコ…

続・ラムダとY Combinatorと私。VBだって、やれば出来る子!

というわけで、前回のC#3.0で書いたラムダとY Combinatorと私。Y Combinatorは恐ろしい子。について、 VB2008のラムダ式でも書いてみました。VBだってやれば出来る子なんです(´・ω・`) Imports System Imports System.Linq Imports System.Collections.Gene…

ラムダとY Combinatorと私。Y Combinatorは恐ろしい子。

再帰的な関数を作る場合に、その関数に名前をつけずに定義するにはどうすればよいの?*1 というのがY Combinatorの中心的話題のようだ。 つまり、不動点演算子を用いると、ラムダ式で再帰表現できるというお話。 f(x) = x なる x が不動点となるのであった。…

世界のナベアツ問題でExpression Tree(式木)と戯れる

LINQの本質とはあんまり関係ないです。Expression Treeを使う練習です。 意味もなく汎用世界のナベアツ再びであります。 難しいことはしていません。生暖かい目で見守ってください(^ω^;) using System; using System.Collections.Generic; using System.Linq…

LINQで順列生成

元ネタ:順列 - 一生酩酊 id:taguoさんが、文字列の順列をC#のLINQで生成していらっしゃいました。 おお、こいつはカッコイイぜ!! とても勉強になりました。 しかし、"abbc"のように同一の文字を含む文字列については順列が生成されませんでした。 あまりL…

拡張メソッドあれこれ

なんか使えそうな感じの拡張メソッドをいろいろ作ってみるテスト。 けど月並みなアイデアばかりで辟易だぞなもしorz using System; using System.Text.RegularExpressions; using System.Collections; using System.Collections.Generic; using System.Linq;…

いわゆるひとつの赤間本

いわゆるひとつの赤間本です。 こーゆーのが欲しかったのですよ。執筆感謝。 というわけで、まったりとLINQ勉強していきまーす。 #紀伊國屋書店で買ったのだが、最後の1冊だった。みんなLINQに興味深々なんだねえ。 #というか、その残りの1冊が丁度立ち…

LINQで虫食い算的なもの

以前書いた、Haskellで虫食い算的なものと同じ問題を、LINQで解いてみる。 using System; using System.Collections.Generic; using System.Linq; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { // 虫食い算 // 4○○ …

Project Euler第1問目

Project Eulerはじめました。(冷やし中華的な意味で) 問題 If we list all the natural numbers below 10 that are multiples of 3 or 5, we get 3, 5, 6 and 9. The sum of these multiples is 23. Find the sum of all the multiples of 3 or 5 below 100…

LINQのWhere条件を動的に変更する方法

@IT:http://www.atmarkit.co.jp/fdotnet/joyofprogram/20080418linqtoxml01/linqtoxml01_01.htmlロブのジョイ・オブ・プログラミングってwww 元ネタが「ジョイ・オブ・ペインティング(ボブの絵画教室)」って マニアックだろ常考。 で、本題 ■LINQのWhe…