かずきのBlog@hatena

すきな言語は C# + XAML の組み合わせ。Azure Functions も好き。最近は Go 言語勉強中。日本マイクロソフトで働いていますが、ここに書いていることは個人的なメモなので会社の公式見解ではありません。

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

手軽なスクリプト言語としてのF# その20「パターンマッチ」

F#

さて、関数型言語には大体ある(と思ってる)パターンマッチについてやってみます。といっても私が経験してる関数型言語はHaskellとF#だけなので、全部の言語にあるかどうかは良く知りません。まぁC#でパターンマッチに該当するものって何?っていうとswitch…

手軽なスクリプト言語としてのF# その19「参照型よりオプション型って安全?」

F#

前回のoption型のエントリを書いたら速攻で@bleisさんからTwitterで突っ込みが入りました。 こういう、突っ込みってうれしいものですよね。option型の説明について補足です。 C#などでの参照型が戻り値となるようなメソッドの場合は、シグネチャを見ただけで…

手軽なスクリプト言語としてのF# その18「オプション型」

F#

さて、今回は小ネタです。小ネタだけど要所要所でお世話になるオプション型というものを紹介したいと思います。オプション型というのは値がある場合と無い場合があるという状態を表したいときに使います。C#とかでは一般的にnullが使われるような状態で使わ…

手軽なスクリプト言語としてのF# その17「リスト」

F#

さて、一番プログラムを書いててお世話になるリストの時間になりました。リストといえば何回か使ってきましたが、このリストはいくつかプロパティを持ってたりします。 let list = [1..10] printfn "list.Head = %d" list.Head printfn "list.Tail = %A" lis…

手軽なスクリプト言語としてのF# その16「総称型 ジェネリック」

F#

F#にもジェネリックあります!今までもさらりと使ってたり使ってなかったりしますが、これはF#のコンパイラが最大限に空気を読んで、ジェネリックに出来そうなところは勝手にしてくれるからです。例えば以下のような関数を書いたとします。 let makeTuple x …

手軽なスクリプト言語としてのF# その15「WPFしてみた」

F#

さて、これまでで基本的にOOPチックな考えてF#のプログラムを書くときに必要そうなことは大体おさえてると思われます。ということで、一区切りの寄り道として簡単なWPFアプリケーションを組んでみようと思います。コードの解説はしません。簡単にコード内に…

手軽なスクリプト言語としてのF# その14「合成演算子とパイプ演算子」

F#

さて、ついに関数型言語っぽい機能の説明です!!!合成演算子とパイプ演算子について紹介したいと思います。 合成演算子 合成演算子というのは、その名の通り2つの関数をくっつけてしまう演算子です。前方合成演算子>>と後方合成演算子 例えばf1とf2という…

手軽なスクリプト言語としてのF# その13「オブジェクト初期化子みたいなの」

F#

F#のクラスは、インスタンスを生成するときにプロパティの値を任意の値で初期化する機能があったりします。C#でいうオブジェクト初期化子みたいなものですね。 ただ、F#ではオブジェクト初期化子という名前は使われていなくて「初期化時のプロパティへの値の…

コレクションをバインドした時に何が起きているか

かなり前の記事になりますが以下のようなListBoxでの選択項目と、ContentControlに表示される項目の同期をとるようなプログラムを書きました。 DataTemplateを使ってデータを表示してみようぜ その2 もうすぐ、3年になるんですね上の記事を書いてから。時間…

手軽なスクリプト言語としてのF# その12「ラムダ式とイベント」

F#

そろそろ、過去のエントリのリストが長くなってきたので、後ろにつけることにしました。さて、今日はC#でお馴染みラムダ式とイベントをやってみようと思います。 ラムダ式 ラムダ式の定義は簡単です。 fun 引数 -> 関数本体試しに足し算する関数をラムダ式で…

「実践 F# 関数型プログラミング入門」読破してました

F#

F#やりたい人に、まじお勧めです。最近書いてるF#のエントリは、この本で得た知識をOOPから入るならどういう風に整理するとわかりやすいかなという自分の考えの整理のために書いてるので、この本見たら私のF#のエントリは見る必要ないです!! F#は、C#と同…

デスマーチの手前の状態って何か呼び名あったほうがいいんじゃない?

デスマーチでどうしようもない。土日もない。家に帰れない。というか家に帰ったと思ったら出勤時間だったとか異次元世界に迷い込んだような状況のデスマーチですが、デスマーチみたいになる前って割とこんな状況になってるんじゃないかと思ったりする。 テス…

資格取得。

ここらへんから何かうけようかなぁ。 http://www.microsoft.com/japan/learning/training/visualstudio/2010/default.mspxでも、今期の目標だからあと2か月・・・。 本買って勉強終了させるところくらいまでにしようかなぁ。と弱気の目標設定にしよう。よし…

手軽なスクリプト言語としてのF# その11「インターフェースと演算子のオーバーロード」

F#

手軽なスクリプト言語としてのF# 手軽なスクリプト言語としてのF# その2 手軽なスクリプト言語としてのF# その3 手軽なスクリプト言語としてのF# その4 手軽なスクリプト言語としてのF# その5 手軽なスクリプト言語としてのF# その6 手軽なスクリプト言…

手軽なスクリプト言語としてのF# その10「継承・アブストラクトクラス」

F#

手軽なスクリプト言語としてのF# 手軽なスクリプト言語としてのF# その2 手軽なスクリプト言語としてのF# その3 手軽なスクリプト言語としてのF# その4 手軽なスクリプト言語としてのF# その5 手軽なスクリプト言語としてのF# その6 手軽なスクリプト言…

WPFで開発を効率的に進めるためのポイントについて思ったこと

id:int128さんがWPFで開発を効率的に進めるためのポイントについて書かれていますが、個人的な思いと少し違うかも?と思ったため自分の言葉で考えて書いてみました。ご意見、ご指摘大歓迎とあるので遠慮なくいってみます!*1WPFでは、ViewとModel(ドメインモ…

手軽なスクリプト言語としてのF# その9「クラス」

F#

手軽なスクリプト言語としてのF# 手軽なスクリプト言語としてのF# その2 手軽なスクリプト言語としてのF# その3 手軽なスクリプト言語としてのF# その4 手軽なスクリプト言語としてのF# その5 手軽なスクリプト言語としてのF# その6 手軽なスクリプト言…

手軽なスクリプト言語としてのF# その8「レコード」

F#

手軽なスクリプト言語としてのF# 手軽なスクリプト言語としてのF# その2 手軽なスクリプト言語としてのF# その3 手軽なスクリプト言語としてのF# その4 手軽なスクリプト言語としてのF# その5 手軽なスクリプト言語としてのF# その6 手軽なスクリプト言…

手軽なスクリプト言語としてのF# その6

F#

手軽なスクリプト言語としてのF# 手軽なスクリプト言語としてのF# その2 手軽なスクリプト言語としてのF# その3 手軽なスクリプト言語としてのF# その4 手軽なスクリプト言語としてのF# その5 さて、今まで型にうるさいF#言語だけど型について一切触れて…

手軽なスクリプト言語としてのF# その7

F#

手軽なスクリプト言語としてのF# 手軽なスクリプト言語としてのF# その2 手軽なスクリプト言語としてのF# その3 手軽なスクリプト言語としてのF# その4 手軽なスクリプト言語としてのF# その5 手軽なスクリプト言語としてのF# その6 さて、7回目になり…

手軽なスクリプト言語としてのF# その7

F#

手軽なスクリプト言語としてのF# 手軽なスクリプト言語としてのF# その2 手軽なスクリプト言語としてのF# その3 手軽なスクリプト言語としてのF# その4 手軽なスクリプト言語としてのF# その5 手軽なスクリプト言語としてのF# その6 さて、7回目になり…

手軽なスクリプト言語としてのF# その5

F#

手軽なスクリプト言語としてのF# 手軽なスクリプト言語としてのF# その2 手軽なスクリプト言語としてのF# その3 手軽なスクリプト言語としてのF# その4 さて、今回はタプルというものを使ってみようと思います。タプル自体の説明は以下を参照するといいと…

手軽なスクリプト言語としてのF# その4

F#

手軽なスクリプト言語としてのF# 手軽なスクリプト言語としてのF# その2 手軽なスクリプト言語としてのF# その3 さて、今回はちょっと次への布石としてC#とかでいうeventをどうやって定義するかということの元ネタとなるものを使ってみようと思います。そ…

本読んでるよ

TOEIC380点ですが何か。 概念的な内容が書かれてる部分は非常に辛いです。でもコードがあるところに知りたいことは結構書かれてるのでコードを読んでから文章読みます。わからない単語は、スルー。これ大事。4割くらい理解できてたらいいなぁ・・・w

手軽なスクリプト言語としてのF# その3

F#

手軽なスクリプト言語としてのF# 手軽なスクリプト言語としてのF# その2 せっかく関数やったので、ちょっと関数型言語っぽいことしてみようと思います。その名もカリー化。 カリー化とは"2引数の関数f(x, y)に対して、「gがfのカリー化」だとは、f(x, y) = …

手軽なスクリプト言語としてのF# その2

F#

手軽なスクリプト言語としてのF# 前回で、さらっと手続型っぽい言語としてF#を使うための基本的な機能を流してみました。そして、書いた後に気付いたんですよ。まがりなりにも関数型言語のF#の最初の記事で関数の定義の仕方を書いてなかったことにorz という…

手軽なスクリプト言語としてのF#

F#

F#の本を、一通り読んで、なかなか関数脳になれない今日この頃です。特に再帰呼び出しが複雑になってきたりすると頭がパンクしちゃいます。ここらへんは、時間をかけて慣らしていくしかないんでしょうが、なかなか馴染まないところです。ただ、F#はOOP言語と…

SQL Server Compact Edition 4.0正式版出てたのか!

ずっとwktkして待ってたのだけど、気付いたら出てました。正式版。 Blogネタとかの小さなサンプル動かしたりするのには持って来いのDBですね!いや〜いい世の中になったもんだ。 Microsoft SQL Server Compact 4.0 is available for download

ソフトウェア工学とは何か を読んだよ

ソフトウェア工学とは何か 1992年に書かれた論文らしいですが、ほとんど古臭さを感じさせない文章です。古臭さを感じるとすれば、それはC++が素晴らしい!!C++が最先端だぜみたいな空気を感じる所でしょうか。C++は素晴らしい言語だと思いますが、全盛期と…

System.ComponentModel.DataAnnotationsの検証が実行される順番

C#

さて、超便利と噂のDataAnnotationですが、こいつの検証の実行順番って意外と知られてないけど、こんな動きするんだぜ!っていうのを見てみたいと思います。 検証用クラスの作成 [CustomValidation(typeof(Sample), "ValidateObject")] public class Sample …