2010-01-01から1年間の記事一覧

めもりんこ

F#

ゼクルッシュさん*1が「メモ化」について面白い記事を書かれていました。 メモ〜化したりスマス。 Memoization and Tail Recursive Function - Bug Catharsis ぼくならこう書く!というのを少し考えてみました。 最初はコメント欄に投稿しようかと思ったので…

第53回勉強会

今日はCLR/Hの勉強会。 僕は用事があって懇親会しか参加できませんでした。 ↓僕が参加する前に撮られた写真 (via 仮装かセミナー in 札幌 ~仮想化のつもりが~ – 高添はここにいます)

ScalaとHaskellがF#に救いの手を

F#

F# Advent Calendar jp 2010 第1回目! F#の弱点(?)のひとつに、C#でいう try-catch-finally の仕組みが無いという点が挙げられます。 F#ではどのようにするかというと、try-with と try-finally をネストすることによって解決します。 「この、ねすとね…

属性の定義

F#

F#での属性の定義に関する情報って何か少なくない・・・? 気のせいでしょうか。 まあC#とほとんど変わらないのですが、一応例を残しておこうと思います。 open System // // サンプル属性 // [<AttributeUsage(AttributeTargets.All)>] // こんな属性を付けよう type InformationAttribute(summary</attributeusage(attributetargets.all)>…

GeneralizableValueAttribute

F#

特に意味はないのですが、頭痛を癒すためにVisual Studioを立ち上げました。ただのひとり遊びです。 type Person() = class end type Dog() = class end type Cat() = class end type MyCollection<'T>() = static let arr = new ResizeArray<'T>() // stati…

Visual F# Express Edition の入手方法

2012/10/27 追記 Visual Studio Express 2012では無償でF#が使えます! http://d.hatena.ne.jp/Nobuhisa/20121027/p1 おそらく、「F# Express」で検索する方が多いと思うので、その人たちを釣る誘導するためのタイトルです。 喜んでください!F#は無償で利用…

F#でプロセス間通信

F#

MailboxProcessorというクラスを使ってやると、スレッド間で簡単にメッセージのやり取りをすることができます。 でもこれがプロセス間となると一工夫が必要。F#側には用意されていないので、BCLの力を借りることになります。 しかし.NETに用意されたプロセス…

再帰理論

こちらもただのお遊びです。 今回はHaskellを選びました。 -- 後者関数は原始再帰関数 suc = (1 +) -- 射影関数は原始再帰関数 u1_1 x = x u3_1 (x, _, _) = x u3_2 (_, x, _) = x u2_1 (x, _) = x u2_2 (_, x) = x -- 加算関数 x +. 0 = u1_1 x x +. (y + 1…

ラムダがあれば何でもできる!元気d(ry

ただ(型なし)ラムダ計算を用いて形式的に記述してゆくだけの遊びです。 言語はSchemeを選択しました。(途中までPythonを使っていたのは秘密) (define true (lambda (x y) x)) (define false (lambda (x y) y)) (define if_ (lambda (p x y) (p x y))) ;;…

match!

すごく久しぶりにSchemeを触っています。相変わらずとても心地良いのよい言語です。 Schemeにはパターンマッチライブラリとかないのかな〜と思って探していると、 「Andrew Wright match」なるものがあることを知りました。matchに待ったパターンマッチ! そ…

F#でDuck Typing

F#にはコンパイル時にシグネチャをチェックする仕組みがあるので、 静的型付け言語であるにもかかわらずDuck Typingができてしまいます。C++のような感じ。 type Taro() = member self.Speak () = "こんにちは!太郎です!" member inline self.Calc (x, y) …

C#とIronPythonの連係がすごいことに

つい先日(Apr.12 2010)IronPythonの新しいバージョンがリリースされました。 言語仕様自体は変わっていませんが(2.6.1)、.NET 4.0向け機能が完成したようです。 β版の頃から注目していましたが、C#4.0(dynamic)と非常に相性がいい! 早速プログラムを見てい…

『F#入門』の資料公開

04月17日(土)にCLR/Hの第47回勉強会が開催されました。 僕は『F#入門 〜関数プログラミングとは何か〜』というセッションを担当しました。 その際の発表資料を公開します。 『F#入門』 SkyDriveにアップロードしてみました(ダウンロードしなくてもpptを表…

ユングが28年かけて書いた本

ユング自身が書き下ろした書物には難解なものが多いなか、ユング心理学全体について丁寧に解説がなされています。 読み終えたので感想。 まず注意ですが、「彼の著書にしては簡単に読める本」であり、一般的には難しい部類の本だと思います。訳者は「ユング…

Quotation で Meta-Programming !

F#は自分の中に眠る力を引き出すべく、Lisp長老に会いに行ったのだった。Lisp like meta-programming ・・・! いくつか例をあげてみよう。 (実行にはPowerPackが必要です) 階乗 open System open Microsoft.FSharp.Quotations open Microsoft.FSharp.Quota…

札幌がどれくらい寒いかをプログラムする

F#

Google API から天気の取得 - みずぴー日記 を読んで、「Pythonは短くて良いなあ。」 と思ったのだけど、多分F#でも同じくらい短くなるだろう、ということでやってみました。 open System.Net open System.Xml open System.Xml.Linq let inline (=>) (elemen…

F#を精神分析

F#

F#のコンパイラの吐く中間コード(MSIL)をちょっと調べていました。 有益な情報は少ないかもしれませんが、MSILまで気になる変態さんのために記しておこうと思います。 ※この記事はF#2.0(VS2010ProRC)時点での内容になります。

忘れてた

あけましておめでとうございます。 今年もどうぞよろしくお願いします。

F#ユーザのためのコミュニティを作りました

F#

F#を試している方は増えつつあるようですが、公式なフォーラム等もまだなく、それぞれのブログで情報を発信するにとどまっています。 2010年になりました。F#ちゃんの出産予定日もそろそろです。日本語でやりとりできるメーリングリストでも欲しいですね。と…