プログラミング
元ネタは、ゆろよろさんの プログラミング言語「ほむほむ」 - ゆろよろ日記(id:yuroyoro) http://d.hatena.ne.jp/yuroyoro/20110601/1306908421 F#でプログラミング言語「ほむほむ」以前実装したF#でGrassなプログラムをちょっと改造しただけの手抜きだが、 …
追記しました 元ネタは、以下あたり。 常識を覆すソートアルゴリズム!その名も"sleep sort"! - Islands in the byte stream http://d.hatena.ne.jp/gfx/20110519/1305810786 Sleep sortの各言語での実装まとめ – Yuyak http://www.yuyak.com/1339 ただいま…
とあるF#er達のつぶやき F#トリビア。いにしえからの言い伝えによると、パターンマッチを「match x with」と書く流派と「x |> function」と書く流派がございます。後者の方がネストを浅く保つことができるので私は好きです。 #fsharp2011-05-12 16:35:17 via…
とあるF#er達のつぶやき 判別共用体は直接公開してどうのこうのしたりするよりかは、内部的な実装は判別共用体でやって、アクティブパターンでインターフェイスを提供するというのがスマートっぽいよ。#fsharp2011-04-20 15:51:54 via Chromed Bird @zecl そ…
オブジェクト指向プログラミングが好きだ。関数型プログラミングが好きだ。 オブジェクト指向プログラミングオブジェクト指向プログラミングは、コンテナの一般性を確保している点で優れている。 データと振る舞いをコンテナとしてまとめることで、プログラ…
id:einblickerさんが、「F#で継続モナド - einblickerの日記」というステキな記事を書いてくださいました。グッジョブすぎる! 以前、F#で継続渡し形式(CPS)変換を抽象的に考えてみたら、それってつまりHaskellの継続モナドみたいなものでした。ということで…
前回のエントリ「F#でRxる。よく訓練されたF#erはコンピューテーション式をつくる。」で紹介いたしました、 Observableコンピューテーション式について補足します。モナド則を満たしているか否かについてです。 Haskellにおいて、モナドがモナド則を満たして…
いにしえからの言い伝えによると、よく訓練されたF#erはコンピューテーション式をつくるそうです。 Select Many: Reactive Extensions’ Mother Of All Operators (Chaining). お、SelectManyですね。 なるほどなるほど。計算を繋ぐもの。モナドですか。そこ…
Google Chrome 拡張機能 「inject hatebu」を公開しました。 2011年2月5日(土)に行われました、「第55回 CLR/H 勉強会 雪まつりスペシャルデイ」にて、 マイクロソフトのジニアス平井さんが、IE9とHTML5についてお話してくださいました。IE9はデザインもすっ…
追記あり なんとなく気が向いたので少しだけ。 主な環境 ・Windows 7 Home Premium ・SQL Server2008 ・F#2.0 まずはclr enabledの変更まず、SQL Server2008の構成オプションの 'clr enabled' を 0 から 1 に変更してSQL CLRを利用可能にします。 その後、RE…
お疲れさまです(本当の意味で)。以前、「ちょっと草植えときますね型言語で近況報告しますwWWwwww」という記事を書きました。 で、最近の私もやっぱりこんな感じです。 _, ._ ( ・ω・) んも〜 ○={=}〇, |:::::::::\, ', ´ 、、、、し 、、、(((.@) wvwwWWwW…
以下が、「Code Contractsで頻繁に使うのに、スニペット用意されてないじゃん!」の追加の俺々コードスニペットたちです。 まぁ、なんで標準的に用意されていないのか、なんとなくわかるような気もしますけどね。 ちなみに、やつけ的にテキストエディタで作…
タイトル通り、F#でもMoq使いたかったんだけど、なんかダメそうなのでRhino Mocksを採用しました。というメモ。 それ以上でもそれ以下でもありません。 F#でMoq利用を試みるも撃沈結論から言うと、F#とMoqの相性は最悪。 Moqは、F#で全く利用できないわけで…
個人的に息詰まる毎日が続いておりますが、みなさんいかがお過ごしでしょうか(誰 今回は、F# PowerPack*1のLazyListをさわってみたので、そのメモ。 LazyListはいわゆる遅延リストあるいは遅延ストリームなどと呼ばれるもので、それをF#でお手軽に扱えるよう…
ご存知、F#は並列処理や非同期処理について考慮されて設計された強力な言語です。 いくつかサンプルプログラムを書いて、わたしもその雰囲気については過去に簡単に確認していました。 しかし、FSharpAsyncやFSharpAsyncBuilder(computation expression)にど…
デバッガ ビジュアライザとはデバッガ ビジュアライザとは、Visual Studioでデバッグをしている時に、 オブジェクトの状態を照会することが出来る画面および、その機能のことです。 そうです。いつもお世話になっているアレです。たとえば、string型について…
バグのないソフトウェアを作りたいお仕事では主にVB.NETとC#を。趣味のプログラミングでは関数型言語F#を利用しています。 私自身のF#スキル(関数型的な考え方)は、まだまだ実践レベルとはとても言えないシロモノだけど、 面白い発見と多くの可能性を感じら…
第47回 CLR/H 勉強会(4/17)に参加しました。今回で6回目くらいですかね。 楽しく有意義な時間を過ごせました。講師の方、参加者のみなさんどうもありがとうございました! 今回はじめて、わたしもライトニングトークに登壇させて頂きました。 もともと人前…
というわけで、さっそくVS2010評価版をインストールしてみましたよ。めでたいですねw みなさんもデフォルト言語はF#に設定しましょう。そうしましょう。いやいや、そんなこと言わずに・・。 F#の仕様もこの短い期間でいろいろと変更が加わりました。 以前書…
「弱い参照」と「強い参照」.NET Frameworkでは、ガベージコレクションによってメモリが管理されます。 変数(フィールドやローカル変数など)に格納されている参照のことを「強い参照」と言います。 強い参照によるオブジェクトは、そのオブジェクトがアク…
久しぶりにExpression Tree(式木)をいじってました。 .NET Framework4では式木が大幅にバージョンアップして、複文や条件分岐、ループなどが表現できるようになりましたが、 それによってどんな面白いことができるかは、まだ模索中だったりします。 今回はと…
以前、FlagsAttributeとビット演算のちょっとしたレシピという記事を書きました。 ご覧頂くとわかるように、とてもダサい実装になっています。記事を掲載してすぐに知人からツッコミがありました。 ツッコミがあったときにすぐに続編記事を書いて訂正しよう…
「より堅牢で正確性の高いソフトウェアを作りたいぜ!」と願う.NETデベロッパーお待ちかねの、 契約による設計(DbC)をサポートするCode Contractsが.NET Framework4より利用できるようになります。 C#をベースとして契約による設計をサポートする「Spec#」を…
拡張メソッドバブルのこのご時世、ジェネリックデリゲートに対して拡張メソッドが定義されていることとかも少なくない。 ということで、ふつうのデリゲートをジェネリックデリゲートとして扱いたい!なんてケースもあるようなないような。いや、きっとありま…
MVVMパターンのViewModelで、INotifyPropertyChangedをいちいち実装すんのかったるい。かといって、AbstractなViewModelBaseは継承したくないでござるよ。
INotifyPropertyChanged インターフェースを実装した抽象クラス ViewModelBase は、残念な俺俺設計MVVMパターンでViewModelを実装する場合、INotifyPropertyChanged インターフェースを実装するのが面倒という理由もあって、 INotifyPropertyChanged インタ…
ハイクの方で書いたネタですが、結構おもしろいネタだったので、 加筆修正などしてこちらにも投下しておきます。 なんぞこの記法。VBがマゾ言語と言われる由縁のひとつがこれだ。VBおよびVB.NETでは下記のような感じで関数を記述することができる。 (VB.NET…
遅ればせながら「WindowsForm終了のお知らせ」を感知WPFに関しては、仕事で使う機会もなく、自宅に満足な開発環境もなかったという理由で、 関連記事の流し読み程度はしていましたが、基本華麗にスルーしてきました。 しかし、Windows7が好感触だったり、今…
.NET Framework4.0には System.Lazy なんてものが追加されていて、 もしかして遅延評価標準サポートktkr?と、思わずwktkした人も少なくないのでは。 ですが、これはインスタンスの生成を遅らせるだけの代物でした。多くのC#erの期待は一瞬にして儚く散って…
(追記:2009/11/18) id:Nobuhisaさんにお返事を頂きました。ありがとうございます! Effective JavaのアレをC#で - (hatena (diary ’Nobuhisa)) C#でBuilderを実装するにあたって、とても参考になりますので、こちらもぜひご覧ください。 引数大杉。Builderパ…
前回のエントリメモ化を抽象的に考えて一般化する。これぞジェネリックプログラミングの神髄!なんつってーをうけて、 taguoさんが、メモ化について良質な記事を書いてくださいまいました。ありがとうございます! めもだいすき - 一生酩酊 まさにメモウマ状…