F#

コンピュテーション式におけるreturnとyield

F#

今日、id:htid46 とF#の話をしつつ帰った時のまとめです。 前提条件 次の2つのエントリを読んでいることが前提です。 詳説コンピュテーション式 - ぐるぐる~ コンピュテーション式の実装にStateを用いる - pocketberserkerの爆走 returnとyieldの変換規則 …

詳説コンピュテーション式

F#

このエントリはコンピュテーション式の仕様を、 日本語で出来る限り分かりやすく解説することを試みたナニカです。 コンピュテーション式自体を使ったことがある人を対象に、その変換の仕組みを説明します。 カスタムオペレータがかかわる部分を省いてあるた…

.NETの標準ライブラリと仲良くする話

F#

F# Advent Calendar 2013の9日目の記事です。 昨日の記事は、id:nenono さんの「F# でリフレクション/式木に触れてみる」でした。 リフレクション、扱いにくいですよねぇ・・・ リフレクションといえば、LangExtシリーズの一つとしてReflectionExtなんてのを…

オーバーロードって素晴らしいですよね!

C# F#

オーバーロード いやぁ、オーバーロードって素晴らしいものですよね。 例えばC#でintを取るメソッドと、stringを取る同じ名前のメソッドを書きたくなったとするじゃないですか。 そんな時でも、C#はメソッドのオーバーロードが出来るので、こう書けるわけで…

ダブル・ディスパッチ~典型的な関数プログラミング・イディオム~

F#

元ネタはダブル・ディスパッチ~典型的なオブジェクト指向プログラミング・イディオム~ です。 これをF#でやってみるとどうなるかやってみましょう。 レンタルショップの例(レベル1) 商品としてCDやDVDを取り扱うレンタルショップを想像・・・するのは面倒…

なごやまつりでF# Type Providerについて(?)話してきた

してきました。 あれだけの人数が集まって、F# 知らない人が全然いないとかすごい勉強会でしたね。 現実(えくせる)と戦う話 from bleis tift Excel方眼紙、どうにかしたいものですね。 今回作った(作りかけ)コードは、GitHubに置いてあります。 ExcelHougans…

.NET基礎勉強会でラムダ計算の発表をしてきた

F#

もう一か月以上も前の話ですが、.NET基礎勉強会で(型無し)ラムダ計算の話をしてきました。 .NETと言えばF#、F#の基礎と言えばラムダ計算!ですよね! 発表資料はこちらです。 ラムダでウィザード 滅せよ手続き、とチャーチは言った (※言ってません) from ble…

Java 8を関数型っぽく使うためのおまじないをF#でやってみた

F#

Java 8を関数型っぽく使うためのおまじない - きしだのはてな Java 8を関数型っぽく使うためのおまじないをC#でやってみた - ぐるぐる~ Java も C# も大変ですね。 F# さんは、ラムダ式も関数型も最初から使えたので、似たようなことはすでにできます。 上…

並列/並行基礎勉強会でasync/awaitをDisってきた

C# F#

async/await不要論 from bleis tift 3/23 に開催された、並列/並行基礎勉強会で「async/await 不要論」という発表をしてきました。 一番言いたかったこと 一番言いたかったことは、実は並列とかとは全く関係ないことです。 それは、言語への機能追加に関する…

高専カンファ in 三重2 行ってきた

F#

高専カンファレンス in 三重2 - 高専カンファレンス Wiki 授業発表ということで、発表もしてきました。 F#によるFunctional Programming入門 from bleis tift 「高専生だし、このくらい飛ばしても大丈夫やろー」と思って飛ばしすぎましたごめんなさい。 想定…

NGK2012B で Excel-DNA 紹介してきた

発表後に新バージョンがリリースされました。 これを機にみなさん使ってみましょう。 VBAを書きたくない話(Excel-DNAの紹介) from bleis tift

第2回 関数型言語勉強会 大阪でしゃべってきてた

F# C#

第2回 関数型言語勉強会 大阪 : ATNDもう一か月以上前じゃないですか・・・ ということで、しゃべってきました。 Better C#の脱却を目指して from bleis tift C# (や Java) を使っているときよりも型の力を借りましょう、ということを主軸に話しました。 C# …

C# から使いやすい F# コードの書き方

F# C#

さて始まりました、F# Advent Calendar 2012 です。 今年は、「実用」がテーマと言うことで、F# で書いたコードを C# から使いたくなった時に気を付けるべきポイントなどをまとめました。 F# と C# で異なる名前を付ける F# では、module に定義する関数や変…

わかめのモナ化で色々やってきた

わかめのモナド浸し - connpassハンズオンの前座として、Maybe モナドと State モナドの解説をしました。 モナドハンズオン前座 from bleis tift 発表も資料も割と好評なようで、「モナドの教え方」みたいなものの感覚もつかめたので発表してよかったです。 …

null の扱い

Maybe つながりで、色んな言語の null の扱いについてちょっとだけまとめてみた。 観点は一つ、「this が null の場合に this の指す先にアクセスしないメソッドが呼び出せるか」です。 C++ #include <iostream> struct hoge { void f() { if (this == 0) std::cout <<</iostream>…

Coderetret in Nagoya に行ってきた

4月28日 Coderetreat in Nagoya(愛知県)行ってきました。 使った言語は、 F# Ruby SML# の 3 つです。 ほとんど F# の布教に行ったような感じになりました。 F# というか関数型言語自体初めての人ばかりでしたが、びっくりするぐらい評判良かったです。 ただ…

@IT で、「F#で初めての関数型プログラミング」という記事を書きました

F#

特集:C#開発者のためのF#入門(前編) F#で初めての関数型プログラミング前編ということで、後編もあります。 後編は大体一か月後に公開予定です。 主な対象は特集のタイトルにもありますが、C# プログラマです。 でもまぁ、サンプルコードは極力シンプルに…

Microsoft MVP for Visual F# 受賞

F#

F#! F#!

FsYaml1.0 リリース

F#

型を使ってカスタマイズする F# 用の YAML ライブラリを作りました。 マニュアル? ソースコード 別プロジェクトの設定ファイル読み込み用として作っていたんですが、ライブラリとして独立させた方が便利だと思ったので分離しました。 そういう背景があるの…

Quick Test Switcher 1.1 をリリースした

テストコードと実装コードの切り替えを支援する Visual Studio 用のアドインを作りました。 マニュアル的なもの Visual Studio Gallery のページ ソースコード コードを開いた状態で Ctrl-0 を押すと、対応するファイルがある場合にそれを開きます。 頻繁に…

Lazy を使って Seq の foldBack 的なものを書いてみた

F#

@yoshihiro503 Seq.foldBack は標準にはないですが、仮にあったとして、たとえば Haskell のように、map を foldr で実装する的なことってできないんじゃ、と思ってるんですが、どんなもんでしょうか?2012-01-20 00:30:23 via web to @yoshihiro503書いてみ…

再帰で考える

F# C#

再帰は関数型言語を構成する重要な部品の一つです*1。 しかし、手続型言語に慣れたプログラマにとって、再帰で考えるというのは難しいものがあります。 このエントリは、そういうプログラマが再帰で考えることができるようになるために書きました。 言語とし…

Jenkins 上で F# を動かす

このエントリは、Jenkins Advent Calendar jp 2011 の参加エントリです。 誕生日は Jenkins と過ごす・・・と思っていたら、一人キャンセルがでていて 22 日になってるし、仕事も忙しいしで、結局間に合いませんでした*1ずびばぜん・・・ Jenkins 上で好きな…

業務で使う関数型言語 (番外編) 〜 タプルに対する誤解

F#

業務で使う関数型言語の番外編第一回は、タプルに対する誤解についてです。 以下の項目のどれかに当てはまる人は是非読んでください。 タプルってリスト (もしくは配列) みたいなものでしょ? タプルってリストより使いにくいから全然使ってないや タプルっ…

業務で使う関数型言語 (F# 編) 〜 レコードで値オブジェクトを簡単に作る

F#

業務で使う関数型言語の第一回は、レコードについてです。 この記念すべき第一回は、F# Advent Calendar 2011 の1日目の参加エントリーにもなっています。 レコードとオブジェクト指向プログラミング言語におけるクラスを比べながら、どういう場面でレコード…

業務で使う関数型言語 (番外編) 〜 はじめに

F#

業務で使う関数型言語 (F# 編) ではカバーしていない内容、つまり仕事と直接は関係のない内容を扱う連載です。 本編は「関数型言語なんて仕事で使えるの?」という疑問を持っている人を主なターゲットにしています。 それに対して、番外編の主なターゲットは…

業務で使う関数型言語 (F# 編) 〜 はじめに

F#

「関数型言語なんて実際の仕事で使えないよ」 こんな声を聞くことがあります。 個人的には、(静的型付けの) 関数型言語が持つパワーは仕事であっても発揮できると考えています。 しかし、自分の観測範囲ではそういう話がまとまっているものはあまり見かけま…

Type Provider によるコンパイル時プログラミング

F#

ハワイにいる間、魔導書の書評以外にもちゃんとハワイらしいことしてきたという報告です(嘘 F# 3.0 で使えるようになる予定の Type Provider ですが、これをさっそく使ってみました。 今回のプログラムは Visual Studio 11 Developer Preview を使用していま…

クラウド温泉2.0@小樽で発表してきた

発表資料の圧縮版です。 仕事で使うF# View more presentations from bleis tift 「仕事で使う F#」と言いつつ、仕事で使う部分は少ないです。 最初の構想としては、NaturalSpec とか Excel DNA とか FParsec とかの話をしようと思っていました。 が、参加者…

クラウド温泉2.0@小樽に行ってきます!

クラウド温泉2.0@小樽 : ATND行ってきます。 F# のお話をする予定です。