F#
超簡単なやつ。入力があったら1秒後に別プロパティに全部大文字にして出すやつです。 open Codeplex.Reactive open System open System.Reactive.Linq type MainWindowViewModel() = // 入力用 let input = new ReactiveProperty<string>() // 出力用 let output = /</string>…
非同期ワークフローの中でTaskってどうやって使うんだろう?と思ってたらAsyncクラスにAwaitaTaskっていうずばりっぽいメソッドがありました。こいつを使えば非同期ワークフローの中でlet!で結果を受け取ることができる。HttpClientを使ってGoogleトップペー…
F#でINotifyPropertyChangedを実装するとどうなるかな~というので実装してみた。 open Microsoft.FSharp.Quotations open Microsoft.FSharp.Quotations.Patterns open Microsoft.FSharp.Quotations.DerivedPatterns type BindableBase() = let propertyChng…
F#にCLIMutableなる属性が追加さられたみたいです。こいつをつけるとデフォルトコンストラクタとか、プロパティに自動的にgetter/setterつけてくれてDTO作ったりEFで便利かもね!みたいな説明が書いてあるような気がしました。 namespace Hoge open System; …
ReactivePropertyって別にC#専用ってわけじゃないんだからねっ!! // 名前空間のopenは省略・・・ // ViewModelの定義はスッキリ type SampleViewModel() = let name = new ReactiveProperty<string>() let upper = name.Select(fun (s : string) -> s.ToUpper()) .</string>…
縁あって発売前ですがプログラミングの魔導書 〜Programmers' Grimoire〜 Vol.2の中身を拝見させて頂く機会を頂きました。Twitter凄いです。一週間ほど前から以下のページで予約が開始されています。 プログラミングの魔導書 〜Programmers' Grimoire〜 Vol.…
Build MVVM Applications in F# 興味のある人はさらっとコードだけでも眺めてみるといいかもです。 F#用のViewModelを記述するためのサポートライブラリみたいなのも紹介されてたりします。あとは非同期ワークフローも!これはC# 5.0が出るまではF#の強みの…
タイトル通りのものを作ってみようと思ってもんもんとしています。ただ、DataTemplateとかControlTemplateとかは、ちょっとしんどいので対象外にしようかな〜と思いつつ、ItemsControlのItemTemplateとかくらいは設定できないと使い物にならないよな〜と思っ…
思いついたのでLINQ Padでさくっと試してみた。 open System open System.Windows open System.Windows.Controls module WPF = /// 添付プロパティと値の組を作成する let (@<<) (dp : DependencyProperty) (value : obj) = (dp, value) /// DependencyObjec…
コードレシピにF#で自前の関数や既存の非同期処理(コールバックで続きの処理をやることを想定)を非同期ワークフローに対応させるときに使用するFromContinuations関数の使用方法についての記事を書きました。 F# 非同期ワークフロー対応の処理の作成方法
前回に引き続きSomaの紹介です!コードレシピに公開してみました。 F# Somaの便利機能「式言語」 軽量ORマッピングフレームワークは手軽に使えるし、小回り(最終的にいくら小回りが利くかが勝負だと思います)が利くのがいいですね!
ということで、じーっと見つめてたらバージョン1が出たSoma!!試してみたついでにコードレシピにまとめてみました。 F# Somaを使ったDBのCRUD処理 DBにはSQL Server Compact Edition 4.0を使ってみました。
F#という言語を最近遊び感覚で使ってますが、まだまだIDEのインテリセンスもイマイチだったりするところがあって、開発環境的には不満が割とあります。でも、それ以上にLL言語を彷彿とさせる(特にPython)ライトっぷりには脱帽です。 メインパラダイム F#は…
CodePlexの以下のページから参照できます。 http://fskinkuma.codeplex.com/documentation 力つきたので少しお休み。
とりあえず、それっぽいサンプル書いたので、これをベースにドキュメントのGetting Startでも書いてみよう。 Hello.zip
DataAnnotationsに対応したものをv0.2として公開しました。nugetでKinkumaFramework.FSharpで検索すると見つかります。ソースコード等はCodePlexで公開しています。 Kinkuma Framework F# (Prism based F# MVVM Support Library)
今日は、DataAnnotationsによる入力値のエラー検証を追加しました。今の所以下のような変更履歴です。 ! KinkumaFramework F# v0.1 F#でViewModelを記載する際の補助ライブラリです。 !! 2011/6/26 v0.1.2 * FsValidatableViewModelBaseクラス ** DataAnnota…
とりあえず勢いだけで作ってCodePlex上に置きました。Prismをベースにしています。 Kinkuma Framework F# (Prism based F# MVVM Support Library) nugetからインストールできるのでKinkumaで検索するとひっかかります。nugetのページは以下になります。 Kink…
ちょっとした小ネタです。F#には非同期ワークフローという非同期処理を同期的に書けるという素敵な機能があります。 MSDNの非同期ワークフローのページからコードを拝借しますが、以下のようなコードが書けます。 open System.Net open Microsoft.FSharp.Con…
昨日、今日あたりでもんもんと考えてたことをまとめました。 F# and MVVM Light Toolkit Sample Application F#でMVVMパターンをやるなら、この記事のようにC#でViewあたりは定義して、ViewModel以降F#で記述するのが妥当だと思います(F#だとViewのデザイナ…
こんな基本クラスを用意しておくと記述が楽かも。まぁ同じことはC#でも言えますが。 ネタ元は以下の記事です。 ObservableObject for WPF MVVM open System open System.ComponentModel /// INotifyPropertyChangedの実装 type NotifyObject() = let propert…
使い道がわからなかったwindowedですが、とりあえず、まとまった前後の要素を見ながら処理したいという用途で使えるのかな。例えば、ある配列の要素から前後の要素との平均を求めるみたいな処理で使えるとか・・・? open System // 適当な元データ作る let …
最近まで存在を知らなかったSeq.pairwise関数とSeq.windowed関数の紹介をしたいと思います。 Seq.pairwise 引数で渡されたシーケンスを要素数が2のタプルのシーケンスにしてくれます。タプルの生成ルールは、(1番目, 2番目), (2番目, 3番目), (3番目, 4番目…
.NET系の言語をExcelで実行できるExcel-DNAをテライケメンのid:bleis-tiftの呟きから教えてもらえました。 Samplesも結構充実してるのでいいかんじ。ファイルをExcelにドロップするだけでいいので、お手軽に使えますね!! 個人的にイケてると思ったのは以下…
前回の例が単一テーブルだったので複数テーブル間の関連があるケースもやってみました。ちょっとはまったのは、F#って前方参照できないのでEmployee Department間の相互参照させることでした。andで繋げてクラス定義すると前方参照もできるようになるみたい…
とりあえず備忘録です。さくっとやって動かなかったので、ぐぐって以下のページを見つけてその通りにやったら動きました。今の所CodeFirstでやるなら大人しくC#使っておいた方がいいのかな・・・?といった所感です。 F# Code-First Development with Entity…
4回にわたって小ネタを書いてきました!!! stringの配列からDictionary<string, string>への変換 stringの配列からDictionary<string, string>への変換 その2 stringの配列からDictionary<string, string>への変換 その3 stringの配列からDictionary<string, string>への変換 その4 id:masa-kさんのブログでも取り上げて</string,></string,></string,></string,>…
F#でReactive Extensionsみたいなことが出来るということでじゃっかんハッスルしてたのですが、まだまだ提供されている便利メソッドは少ないというのが実情みたいです。(id:neueccさん情報)確かにObservableモジュールを眺めてみてもメソッドが数えるほど…
F#のIEventインターフェースを見てみたらIObservable実装してることに気づきました。そして、Observableモジュールというものも定義されている・・・。 これは出来る!!!ということで、ちょろっと試してみました。 // int型を発行するIEventを作る let e =…
フルF#(XAML無し)で組んでみました。後悔しています。とりあえずやるもんじゃないですね!でも、せっかく書いたのでメモメモ。 #if INTERACTIVE #r "PresentationCore.dll" #r "PresentationFramework.dll" #r "WindowsBase.dll" #r "GalaSoft.MvvmLight.E…