This entry is for F# Advent Calendar 2012, 9th. Previous one is Mono for Android with F#, written by @smallgeek. It's very interesting one, and I really want to make some exciting Game(s). # But I know that I don't have enough skills to do…
INIファイルからセクション情報やらをとってくるときに、10240バイト固定になっているので、大きいサイズのファイルを対象にするときちんと動作しません。 なのでそのあたりの面倒をちゃんと見られるようにできればdraftを外せるんじゃないかなと思います。 …
Fsharpxには他にもたくさんのType Providerやライブラリがあるようなので、いつかそれらも試してみたいところです。
Type Providerをデバッグする場合は以下のようにすると色々はかどるんじゃないかと思います。 Type Providerを作成中のプロジェクトのプロパティで[デバッグ]の[開始動作]を[外部プログラムの開始]にして「devenv.exe」へのパスを指定する [開始オプション]…
1.別のVisual Studioを起動して、[F# アプリケーション]のプロジェクトを新規作成します。 2.作成したアセンブリを参照追加します。 2.1.[型プロバイダーのセキュリティ]ダイアログが表示されるので、[有効化]を選択します 3.テスト用のINIファイルを用意し…
Win32モジュール このモジュールにはINIファイル用のWin32 APIをP/Invokeするための定義があります。 今回はINIファイルを読み取る機能しかサポートしないつもりなので、以下の関数しか定義していません。 GetPrivateProfileSectionNamesW GetPrivateProfile…
namespace Personal.FSharp.TypeProviders open System open System.IO open System.Reflection open System.Runtime.InteropServices open System.Text open Microsoft.FSharp.Core.CompilerServices open Samples.FSharp.ProvidedTypes module Win32 = [<DllImport("kernel32", CharSet = CharSet.Unicode)>] </dllimport("kernel32",>…
F# Advent Calendar 2012 用の記事です。 たぶん9日目じゃないかと思います。 9日目です。前回は@smallgeekさんのMono for Android と F#でした。 個人的にはAndroidのアプリもゲームもいつか作ってみたいと思いつつ無限に延期されている状態なのもあって、…
開発環境にWix 3.6がインストールされているものとする [ファイル]-[新規作成]-[プロジェクト]から[Windows Installer XML]-[Bootstrapper Project]を選択 [ソリューションエクスプローラー]内、作成したプロジェクトの[References]を右クリックして[参照の…
前回は結局プロジェクトテンプレートのパスを直打ちしていたわけですが、なんとか.\NullPathというダミーパスでも プロジェクトが表示できるようになったのでそれまでの手順を再度まとめておきます。前提: Visual Studio 2010 SP1 Visual Studio 2010 SDK S…
前提: Visual Studio 2010 SP1 Visual Studio 2010 SDK for SP1 VS2010 Isolated Shellにとりあえず何かしら自前で用意したプロジェクトが表示されるようにするまでのメモ。まだプロジェクト生成システムが機能するところまで届いていません。
http://dl.dropbox.com/u/7392906/20100813/FSharpAspNet.zip http://dl.dropbox.com/u/7392906/20100813/FSharpAspNetItem.zipThese are experimental ones.
http://dl.dropbox.com/u/7392906/20100813/FSharpAspNet.zip http://dl.dropbox.com/u/7392906/20100813/FSharpAspNetItem.zipそれらしいものです。
F# PowerPackのバージョンが変わって動作しなくなっているらしい? 出直してきます。
C#の場合、ExpandoObjectに新しいプロパティを追加するコードは以下のように書ける: dynamic d = new ExpandoObject(); d.NewProp1 = "Value1"; d.NewProp2 = 2;一方F#の場合、次のようなコードは書けない: let d = new ExpandoObject() d.NewProp1 <- "Va…
ユーザーのプロファイルが消えてしまって、ホームディレクトリがC:\Users\TEMPになった場合には HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList にあるユーザ情報のうちで、ProfileImagePath がそれらしい値(C:\Users\TEMP)…
ネットで拾ったYコンビネータ2つ。 type rcs<'a, 'b> = Rec of (rcs<'a, 'b> -> ('a -> 'b)) let y maker = (fun (Rec f) x -> maker (f (Rec f)) x) (Rec (fun (Rec f) x -> maker (f (Rec f)) x)) // テスト let fact = y (fun f x -> if x = 0 then 1 els…
月曜にMSDN Subscribers向けに公開されていましたが、今日一般向けの公開も始まりました。http://tinyurl.com/vsbeta2downloadなので早速インストールしてみました。
ためのメモ。まずWindows Timeサービスを起動する。 net start w32time 次にw32tmコマンドを使って、同期先のNTPサーバを指定する。 w32tm /config /manualpeerlist:ntp.jst.mfeed.ad.jp /syncfromflags:manual 複数のNTPサーバを使う場合は/manualpeerlist…
Thunderbirdを使ってIMAPでExchange Server 2007へ接続している時に、 日本語検索がなんとか機能しないものかといろいろ試していたら、 いつの間にかメールにwinmail.datが添付されて見えるようになってしまいました。特に害があるわけでもないんですが不要…
世の中便利になったもので、Windows APIを呼ぶにも Windows API Code Packなるものを使えば C#からあんなことやそんなこともできてしまうそうですよ。というわけでWindows 7も近いことですし、C#のWinFormアプリでJumpListなど使ってみようという話です。ち…
JScriptで再帰的にフォルダを作る: function CreateFolderEx(n) { var wsh = new ActiveXObject("WScript.Shell"); var fso = new ActiveXObject("Scripting.FileSystemObject"); var re = /^.:\\/; var paths = n.split("\\"); var target = ""; if (!n.ma…
インストールしてからこの方受信専用となっていた自宅のExchangeServer2007を ようやくSMTPサーバとして使えるように設定できたのでメモ。 参考にした記事:http://infopatisserie.blog.so-net.ne.jp/2006-08-09ExchangeServer2007では2003と用語や管理UIが…
思いがけずはまったのでメモ。 // test.h ref class BaseClass abstract { public: void Test(); protected: virtual property System::String ^Prop1 { System::String ^get() = 0; // このあたりが純粋仮想プロパティ } }; ref class DerivedClass : BaseC…
メモ。 ファイルを移動しても同じ情報がとれる。 コピーして新しいファイルになったら違う情報。 今のところは役立つこともなさそうだけど一応メモ。 using System; using System.IO; using System.Runtime.InteropServices; using Microsoft.Win32.SafeHand…
Non-CLS Exception(CLS非互換例外?)の話。 バージョン1.xでは catch (Exception e) { // ※1 }として捕まえられるのはCLS互換な例外だけなので、 非マネージコードで発生した例外は捕まえられないのでした。 なのでどうするかといえば catch { // ※2 }とし…
ひょっとして空文字列「""」はアプリケーションのメタデータに文字列テーブルとして含まれて、 String.EmptyはCLRのメタデータにある文字列テーブルからデータを引っ張る? それだと Object.ReferenceEquals(String.Empty, new string(new char[0])) が True…
CLR via C#で勉強したことのまとめ。途中。 Finalizeメソッドが呼ばれるタイミング マネージヒープが世代0で一杯になった時 と本には書いてあるけども、正確には世代n(n:0〜)で一杯になったとき? 明示的にコードから呼び出した時 Windowsからメモリが足り…
ブの方は使っていたんですがリーも使ってみることにしました。 それだけです。 今日はここまで。