2011/04/01

Microsoft MVP for F# を受賞しました

F# MVP 国内第2号もしくは F# MVP のイケてない方のいげ太です。

F# MVP が2人も誕生したってことで、割と Microsoft も F# に本気だなーとか。

これからも相も変わらず F# F# 言っていきたいと思います。よろしくお願いします。

| | コメント (2) | トラックバック (1)

2011/02/12

C#er のためのやさしい再帰入門

よく訓練された C# 使いならばご存じの通り、C# に末尾最適化はない。より正確に言い換えるなら、C# 4.0 コンパイラは 'tail.' プリフィックスを付与しない。このことによって、C# プログラミングにおいては、再帰はおよそ避けるべきものとして認識されている。しかし。

しかしポインタと再帰の明らかな重要性以上に重要なのは、これらの学習から得られる精神的な柔軟さと、これらを教えている授業からふるい落とされないために必要な精神的態度が、大きなシステムを構築する上で欠かせないということだ。ポインタと再帰には、ある種の推論力、抽象的思考力、そして何よりも問題を同時に複数の抽象レベルで見るという能力が要求される。そしてポインタと再帰を理解できる能力は、優れたプログラマになるための能力と直接的に相関している。

Javaスクールの危険 - The Joel on Software Translation Project

ならば。もしあなたが再帰の得意でない C#er であるならば。末尾最適化を備えた .NET 言語である F# との対比によって再帰に入門してみるってのはどうか。

» 続きを読む

| | コメント (1) | トラックバック (0)

2011/01/25

[F#] Tuples as First-Class Values

[Updated 2011/02/11: コメント欄で BLUEPIXY さんからツッコミいただいた件について記事に追記・修正。]

タプルの真実あるいは暗黒面。

» 続きを読む

| | コメント (10) | トラックバック (0)

2011/01/24

書籍『実践 F# 関数型プログラミング入門』を書きました

荒井さんじゃない方の著者のいげ太です。

実践 F# 関数型プログラミング入門
  • 価格: ¥3,360
  • 大型本: 464ページ
  • 発売日: 2011/01/07
  • 作者: 荒井省三:いげ太
  • 出版社: 技術評論社
  • ISBN-10: 4774145165
  • ISBN-13: 978-4774145167

というわけで、すこしだけご紹介を。

» 続きを読む

| | コメント (0) | トラックバック (0)

2010/12/09

[F#] SEQUENCE×SEQUENCE

この記事は F# Advent Calendar jp 2010 の第3回目です。

Seq モジュールの関数/値について、それらの持つ能力から分類してみます。すなわち、念能力列能力による分類。

» 続きを読む

| | コメント (1) | トラックバック (1)

2010/08/18

[和訳] Announcing the F# 2.0 Standalone Tools Update (for .NET 2.0, 4.0 and other CLI Implementations)

この記事は、以下の Don Syme 氏のブログ記事の私訳です。

Announcing the F# 2.0 Standalone Tools Update (for .NET 2.0, 4.0 and other CLI Implementations) - Don Syme's WebLog on F# and Related Topics - Site Home - MSDN Blogs

待ちに待った F# + .NET 4 の無償開発環境(Visual F# 2010 Express 相当)がこれで整いましたね。

» 続きを読む

| | コメント (2) | トラックバック (3)

2010/07/09

[F#] unpairwise 問題

F# には pairwise なる関数がある。文章で説明するよりも、以下の F# Interactive での実行結果を見てもらった方が、その動きを理解するには早いだろう。

> Seq.pairwise [1..5];;
val it : seq<int * int> = seq [(1, 2); (2, 3); (3, 4); (4, 5)]

つまりはそういうことだ。まあ、なんだ、植木算には使えそうだね。ところで僕は pairwise したシーケンスを元のシーケンスに戻すための unpairwise 関数について考えてみたいんだ。キミならどう書く。

» 続きを読む

| | コメント (1) | トラックバック (0)

2010/02/21

[和訳] Don Syme: Geek of the Week

当記事は Simple-Talk.com の著作物である以下の記事を和訳したものです。

Don Syme: Geek of the Week

Copyright を確認の上、個人的かつ非営利な目的において当記事を公開いたします。もし問題があればすぐに削除いたしますのでご連絡ください。また、誤訳やよりよい翻訳があればぜひご指摘いただきたく存じます。

» 続きを読む

| | コメント (13) | トラックバック (0)

2009/12/12

[C#][F#] enum を Dictionary に変換

列挙型の列挙子を列挙したいというのは割とよくある話で、列挙子の名前と値を辞書として取り出すメソッド(関数)を作っておくと便利です。

» 続きを読む

| | コメント (0) | トラックバック (0)

2009/11/23

[C#] タプルの構造的等値および比較

[Updated 2010/02/21: すこし修正。]
[Updated 2009/11/24: 間違いを訂正し、全体的に文章の修正を行いました。]

.NET 4 から、BCL にタプルが入りました。

組を構築する(Building Tuple)

結局、タプルは参照型として実装されましたが、それはほとんど値型として振る舞うべきものであるようにも見えます。タプルはただ複数の値をまとめるためにあり、興味があるのはそのまとめられた値の方です。となれば、なにか 2 つのタプルを比較するときには、タプルのインスタンスの参照比較ではなくタプルの中身の値によって比較を行いたい、という場合がほとんどではないでしょうか。

» 続きを読む

| | コメント (3) | トラックバック (0)

2009/10/15

[F#] じゃんけん

MailboxProcessor を使うと、actor とか agent とか message-passing とかなんかそういうアプローチでコードが組めるらしい。で、ピンポンに代わるもうすこし楽しげな題材として、じゃんけんでやってみる。

» 続きを読む

| | コメント (0) | トラックバック (0)

2009/09/13

あなたが書いたその図をわたしはただ理解できないかもしれない

すっかり秋めいてきましたね。読書の秋です。

・あなたが好きなその本をわたしはまだ読んでいないかもしれない
ということで、きちんとした書評でなくても、新刊でなくても (むしろ古いほうが掘り出し物っぽいかも。でも入手困難だとしょぼーんだなあ) いいですから、あなたの好きなその本を紹介してください。 できればなぜ、どの辺が好きなのか書いてくださるとうれしいです。

ときどきの雑記帖 i戦士篇 2009年8月(上旬)

ということで、ちょっと前の記事への反応ですが、『図解主義!』をおすすめします。

» 続きを読む

| | コメント (1) | トラックバック (0)

2009/09/10

[VB][VBA][VBScript] Shift_JIS 文字列とみなしてバイト単位で切り出し(その 2)

前回 2 つのエントリでは、文字列全体をいったん Shift_JIS 文字列に変換してからバイト単位での切り出しを行い、そして Unicode 文字列に戻す、という方法をとった。StrConv が使えるか、ADODB.Stream を使わざるを得ないかで、コードを大幅に変えなければいけないのは見てきたとおりだ。

では、1 文字ずつ ASCII コードを取り出してチェックするならどうか。(ほぼ)共通のコードでまかなえる。

» 続きを読む

| | コメント (0) | トラックバック (0)

2009/09/09

[VBScript] Shift_JIS 文字列とみなしてバイト単位で切り出し

VBS には StrConv がない。Byte 配列もうまく扱えない。

COM に頼るしかない。

» 続きを読む

| | コメント (0) | トラックバック (0)

2009/09/07

[VB][VBA] Shift_JIS 文字列とみなしてバイト単位で切り出し

すこし探して見つからず、めんどくさくなって自作する。

[追記 at 2009/09/08] 境界値バグを修正。 [/追記]

» 続きを読む

| | コメント (0) | トラックバック (0)

2009/08/25

日経ソフトウエア 2009 年 10 月号に F# の記事が

載ってるみたい。

特集2:Visual Studio 2010でプログラミングはこう変わる

Part1:すぐ使いたくなる新機能
Part2:普及したマルチコアを活用する
Part3:新プログラミング言語「F#」

2009年10月 - 日経ソフトウエア 目次と訂正:ITpro

明日、立ち読みしに買いに行ってみるか。

| | コメント (2) | トラックバック (0)

2009/08/15

time

別件で調べ物をしていたら、はてなダイアリーをブログモードで使ったときの記事 URL の最後尾に付くなんやようわからん 10 桁くらいの数値は UNIX 時間(エポック時間)なるものであると知って、ほへーっとアホ顔をさらしているのは、夏の熱さのせいじゃない。

» 続きを読む

| | コメント (0) | トラックバック (0)

2009/08/01

[F#] おーおーふぁんくた

F# は、いまのところ、ファンクタを直接サポートしていない。ただし、将来の拡張のために functor キーワードが reserve されていたり、object expression が割とファンクタ的な用法で使えたりするような気がする。

» 続きを読む

| | コメント (0) | トラックバック (0)

2009/07/27

[F#] くいずです

ぱいぷらいんが あたいのほかに ながすもの なーんだ

ひんと いちでなくなっています

type Foo<'T>(v: 'T) =
    member x.Value = v

let foos = [ Foo(1); Foo(2); Foo(3) ]

let ns = Seq.map (fun foo -> foo.Value) foos    // (1)
let ms = foos |> Seq.map (fun foo -> foo.Value) // (2)

| | コメント (0) | トラックバック (0)

2009/07/16

VBA で map とか fold

煩雑さから逃げようと共通化・抽象化を試みて、また別の煩雑さに行き当たるんだ。

» 続きを読む

| | コメント (0) | トラックバック (0)

«[F#] マージ ソート