Remote F# HACKATHON

2013/03/23(土)に札幌でF#のハッカソンを開催します。
http://atnd.org/events/37221


「興味はあるけど、遠すぎて行けない!」という型は、ぜひリモートでご参加ください。
当日ご自宅で各自ハッスルして頂いて、
気が向いた時に「 #fs_hack 」タグを付けて心情をツイートしてみてください。
運が良ければ誰かに見てもらえるかもしれません。


14:00〜18:00の間で行われる予定ですが、作業時間はお任せします。
15:40〜16:10までの30分間だけハッスルするのも素敵だと思います。
むしろ、この時間帯が一番熱い風が吹くんだ!!


現地での1日の流れ(予定):
1. 自己紹介、本日やることを自己申告
2. 作業開始
3. 作業終了
4. 成果報告
5. 雑談 & 後型付け


こんな感じを予定しています。
リモートで参加される方も、最初に何をするのかをツイートして頂いて、
終わったら成果報告などをお願いします。ゆるふわな感じで。
(例:「実践F#読み進める!」「Weblog書く!」「ライブラリに機能追加する!」など)


ご参加お待ちしております。





「誰がやるか?君でしょ!」

CLR/H ナイトセミナー #2 TypeScript入門

CLR/H ナイトセミナー #2 で使用した えふしゃー・・・じゃなかった。TypeScript入門の資料です。
僕自身あまりTypeScriptを知らないので初歩的な内容になっています。
えふしゃー・・・じゃなかった。TypeScriptに興味のある方はどうぞお使いください。


slideshare : http://www.slideshare.net/Nobuhisa/ss-16603888
SkyDrive : http://sdrv.ms/Xnl81c (.pptx)
SkyDrive : http://sdrv.ms/Xnp5CW (.pdf)



!!

F#サンタからの贈り物

F# Advent Calendar 2012の最終日、24日のエントリです。
今年のFsAdventJPはテーマが『実用』ということもあって、面白い記事が多かったですね。
皆さんがハードルを上げまくって下さいましたので、胸焼けが治まりません。


今日はクリスマス・イブということで、
『クリスマス・スペシャル』でお送りしたいと思います。
なお、本エントリを読むにあたっての注意事項があります。

  • F# Interactive (fsi) をご用意下さい
  • disらないでください


それでは本題に入ります。

続きを読む

知っている人は知っている、知らない人は知らない『NDjango』

One ASP.NET Advent Calendar 2012の16日目のエントリです。(ちょっと過ぎちゃった・・・)


ASP.NET MVCを勉強しようと思っていた矢先、Advent Calendarの募集が始まったので勢いで参加登録しました。
今は反省しています。
3日前に初めてASP.NET MVCを触りました。
僕が今、鬼気迫る表情で画面に向かっていることは容易にご想像頂けるかと思います。


さて、今日はNDjangoというオープンソースのViewエンジンを取り上げたいと思います。
DjangoというPythonMVCフレームワークがございまして、そのViewエンジンを移植してきたものがこのNDjangoです。
ソースコードGitHubでご覧になれます。
https://github.com/Hill30/NDjango
ご覧頂くと分かる通り、F#で実装されています。アツい!*1


DjangoのViewエンジンの特徴としては、「フィルタ」「タグ」「継承」などが挙げられますが、
今日は最後の「継承」という仕組みを扱いたいと思います。
ちなみに、NDjangoはフィルタとタグを拡張できるようです。(参考)

*1:それほどキレイなコードではないので、F#のお勉強の参考にはならないかもしれません・・・

続きを読む

F# 3.0の開発環境を用意しよう!

先日Visual Studio Express 2012がリリースされましたが、F#のための無償アドインも公開されています。

Announcing F# Tools for Visual Studio Express 2012 for Web! | Visual Studio F# Team Blog

このアドインをインストールすると、Visual Studio Express 2012でF#が使えるようになります。

インストール手順

0. VS Express 2012 は、Windows 7以降のOSで利用可能です。Vistaちゃん・・・。
1. Express for Webをインストールします。*1
2. F# Tools for Visual Studio 2012 Express for Webをインストールします。

あわせて読みたい

書籍

現在はまだ出版されておらず、予約受け付けなうの段階ですが、F# 3.0に対応した書籍も登場する予定です(洋書)。
出版されました。洋書です。


F# 2.0までの対応ですが、日本語で読める書籍で勉強したい方はこちらをオススメします。
日本語書籍の中で最も内容が充実しています。

Mac/Linux で利用するには?

Mac/LinuxユーザだけどIDEが使いたい!という方は、MonoDevelop用のF#プラグインをどうぞ。
F# for MonoDevelop – Variations in F# | Functional Variations

Emacs

Emacsで開発したい方のための、fsharp-modeもあります。
fsharp-mode download | SourceForge.net

語学留学

Q. 「F#短期留学するとしたら、どこに行けば良いですか?」
A. 「札幌か名古屋かイギリスです。」※ただし、なごやはこわい

Enjoy F# !

ちなみに、Twitterハッシュタグ#fsharp です。



おしまい。

*1:for Webとありますが、あとでF#アドインを入れると全てのアプリケーションが開発できるようになります。全知全能的なアドインですね!

IronSchemeは生きている F#の中に

F# Advent Calendar 2011の参加エントリです。


言語指向プログラミング(LOP)をサポートする機能として、
F#にはアクティブパターンやコンピューテーション式と言ったものがあります。
今日は後者のコンピューテーション式を使ってF#にSchemeを組み込んでみたいと思います。


DLR上で動作するIronSchemeという処理系があります(何気にR6RS準拠)。
うんこな側面もいくつかありますが、個人的には期待しています。でも少しうんこです。
こいつを利用します。ここでは最新版の1.0 RC5を使いました。

プログラム

サンプルプログラムはbitbucketに置いてあります。
http://bitbucket.org/Nobuhisa/f-advent-calendar-2011/src
実行には.NET 4以上が必要です。そのため、mono環境では動作しません(多分)。
テストコードもおまけで付いています。Onigiri便利です。←


まずは定義されたコンピューテーション式を利用してみます。

sample1 : 1024
sample2 : 200
本来であればIronSchemeのスクリプトエンジンを用意して式をEvalしなくてはなりませんが、
LOPによって空間を分離し、面倒な部分一切を後ろの世界に隠蔽しています。


以下が実装の全容です。
オシャレな感じを出すために、Late Binding Operator Expressionsを使っています。


実用するためには他にも実装しなければならない点がありますが、
実用しないので問題ありません。


初心者の方には難しかったかもしれませんが、プログラミングの魔導書Vol.2を読めば理解できるようになるので心配はいりません。好評発売中です。


おしまい。

オニギリアタタメマスカ・・・

ずいぶん昔のことですが、10/15にCLR/Hの第63回勉強会が開催されました。
Microsoftの荒井さんを講師にお招きし、ちゃっかり実践F#にサインを頂いてしまいました。


僕は今回LTに参加しました。
作っていたツール(ライブラリ?)があったので、それをお披露目しただけというつまらないLTです。
スライドは少ししかありませんが、熱狂的なK泉ファンのために一応アップしました。
slideshare - おにぎり
今日のエントリは、そんな「おにぎり」の紹介です。

おにぎりとは・・・

おにぎりは、F#用のInteractive Testingツールです。
PythonRubyのように、さくさくユニットテストを実行したかったので作りました。
F#には、NUnitをベースにしたFsUnitNaturalSpecなどのテストツールがありますが、テスト用プロジェクトをビルドしてからじゃないとテストを実行できません。
おにぎりは、対話環境(F# Interactive)上で動作するため、コンパイルすることなく、即時にテストを行うことができます。素敵ですね。


以下からα版のソースをダウンロードできます。

https://bitbucket.org/Nobuhisa/onigiri/
Mercurialをお使いの方は、
$ hg clone https://bitbucket.org/Nobuhisa/onigiri

一応.NET 4向けにビルドしたDLLもおまけで付けてありますが、F# CTPやmonoをご利用の方は自分でビルドする必要があります。
例:

> c:\Program Files\Microsoft F#\v4.0\fsc.exe -o:Release\Onigiri.dll --optimize+ --target:library --utf8output Prelude.fs Assertion.fsi Assertion.fs Core.fs
まだα版なので今後仕様などが大幅に変わるかもしれませんが、そこはオトナの対応をしてください。
以下は簡単な利用例です。

おにぎりを使おう

以下のようなプログラム(テスト対象)があったとします。

  • MyLibrary.fs


これに対するテストスクリプトです。
Onigiri.dllは、スクリプトファイルと同じフォルダに入れてあげるとラクかなと思います。

  • Test.fsx


テストがかなり適当ですが、あまり気にしないでください。
このスクリプトを、[Ctrl + A] -> [Alt + Enter] で評価するか、
対話環境上で
#load "Test.fsx" ;;
してください(後者はパスを指定しないとならないので面倒だね)。


上記のテストは全て成功しますので、対話環境内に以下のように表示されます。

============================================================
Onigiri ! Onigiri !
============================================================


プロジェクトに追加されたスクリプトファイル(.fsx)はコンパイル時には除外されますので、テストコードを残したままリリースビルドしても問題ありません。素敵ですね。
定義されている関数や演算子の一覧は、Assertion.fsiというシグネチャファイルをご利用ください。


正式版のリリースは気が向いたらします・・・。
清く美しいF#erの皆さんが、機能要望とか改善点などを指摘してくれたら嬉しいな。


あ、魔導書Vol.2の書籍版が発送されましたね。良かったら読んでね。
Enjoy Onigiri !