Getting a Good Grasp of F# (仮)

関数型言語F#をもっと楽しみたい

F#

F#のコードをユニットテストで検証する その6 (NUnit)

NUnit を使って例外送出のテストをしてみます。以下に示すコードでは DivideByZeroException が確実にスローされることを確認するテストを実行しています。 例外送出のユニットテストの例 module UnitTestingSamples2 open NUnit.Framework open System [<Test>] l</test>…

F#のコードをユニットテストで検証する その5 (NUnit)

Visual Studio 2013 から NUnit を使ってF# コードのユニットテストを行ってみます。(F# のプロジェクトはコンソールアプリケーションのプロジェクトとして作成) プロジェクトへ必要な Nuget パッケージをインストールします。(記事作成時の NUnit のバー…

F#からWPFのGUIを扱う その4

前回(F#からWPFのGUIを扱う その3)の別解として、今度は Win32 API を直接利用せずにインターフェイス IValueConverter の実装を別の方法で試みます。 MyBitmapConverter クラスを再実装します。よって、前回のF#のコードの34~52行目を以下のコードで置き…

F#からWPFのGUIを扱う その3

WPF の Image コントロールに、動的に生成したビットマップ画像を表示させるコードを書いてみます。 生成する画像については「Windows Presentation Foundation 4.5 Cookbook」Chapter 9 : Graphics and Animation / Manipulating a bitmap programmatically…

F#からWPFのGUIを扱う その2

WPFボタンの簡単なClickイベント処理を試みます。前回作成したソリューションにコードを追加していきます。 C#のプロジェクト WpfTest にて MainWindow.xaml にボタンを追加します。XAMLデザイナーの画面でマウス操作でボタンを配置してみます。 ツールボッ…

F#からWPFのGUIを扱う その1

WPF(Windows Presentation Framework)のウィンドウをF#のコードを使って表示させてみます。XAMLの編集作業の利便性を考えてC#のプロジェクトと連携させることにします。以下の説明で使用している開発環境はVisual Studio 2013 です。 まず準備として新規の…

F#で集合を扱う その2

F#

// 名前空間:Microsoft.FSharp.CollectionsのSetモジュールについて。 Set が生成する集合オブジェクトはイミュータブル(immutable)つまり変更不可な値です。 以下のコードでAdd メソッドを呼び出していますが、1行目で生成した集合オブジェクトの内容を…

F#で集合を扱う その1

F#

F#で数学における「集合」を扱うために、名前空間:Microsoft.FSharp.Collections には Set というモジュールが用意されています。 整数0から5までの集合を作るには、 let is = Set.ofList [0..5] このコードは、整数0から5のリスト [0; 1; 2; 3; 4; 5] に S…

F#のコードをユニットテストで検証する その4(xUnit)

前回の xUnit.net を利用したユニットテストの続きです。前回とは違うやり方で、ひとつのテスト関数に複数のテストデータを渡す方法を試します。 サンプルコード その1 module Sample3 open Xunit let SampleData01 : seq<obj array> = seq [ [| ""; 0 |] [| "ab"; 2 |]</obj>…

F#のコードをユニットテストで検証する その3(xUnit)

前回と同じく Visual Studio 2013 のテストエクスプローラーから xUnit.net を使ったユニットテストを行います。今回は1つのテスト関数に複数のテストデータを渡す方法を試します。 xUnit.net を使ったコードの例 module Sample2 open Xunit let fibonacci (…

F#のコードをユニットテストで検証する その2(xUnit)

.codesnippet { border-style: solid; border-width: 1px; margin-top: 1em; margin-bottom: 2em; font-family: Consolas; font-size: 10pt; color: black; background: #fffbf0; line-height: 1.3em; } --> xUnit.net を利用してVisual Studio 2013のテスト…

F#のコードをユニットテストで検証する その1

デフォルトのVisual Studio 2013の環境で、F#のコードのユニットテストを実行してみます。以下は普通のコンソールアプリケーションのプロジェクトに含まれているコードです。Microsoft.VisualStudio.TestTools.UnitTesting名前空間を使うので、予め Microsof…

F#でなるべく簡単にグラフ表示をさせたい その4

.pre_attributes { border-style: solid; border-width: 1px; margin-top: 1em; margin-bottom: 2em; font-family: Consolas; font-size: 10pt; color: black; background: #fffbf0; line-height: 1.3em; } --> 今回はチャート・ライブラリ F# Chartingを利…

F#でリスト要素のデカルト積を求める

F#

二つのリスト [0; 1][2; 3] のデカルト積(Cartesian product)、つまり互いのリスト要素どうしのすべての組み合わせによる集合をリストで表すと [ [0; 2]; [0; 3]; [1; 2]; [1; 3] ] と表せます。また、三つのリスト [0; 1][2; 3][4; 5] ならば [ [0; 2; 4]…

F#でなるべく簡単にグラフ表示をさせたい その3

名前空間:System.Windows.Forms.DataVisualization.Chartingのクラスを使って.NET標準ライブラリのみでグラフを描いてみます。 Windowsフォーム(Formオブジェクト)に下図のような階層で必要なオブジェクトを追加していきます。 Form ChartControl ChartAr…

F#でなるべく簡単にグラフ表示をさせたい その2

F#からgnuplotを利用するためのライブラリとしてFnuPlotというのがあります。(Funplotという似た名前のソフトウェアも存在するので検索する場合は注意) FnuPlot 公式ページ:http://fsprojects.github.io/FnuPlot/ まだ(2015年11月現在)ベータ版のようで…

F#でなるべく簡単にグラフ表示をさせたい その1

グラフといってもここでは英語で言うgraphではなくchartのこと。ここではグラフ描画にオープンソース・ソフトのgnuplotを利用します。 まずはgnuplotを下記URLからダウンロードしてインストール。 http://www.gnuplot.info/(gnuplot公式ページ) GUIでグラ…