F#
以前、C#で順列(Permutation)と組み合わせ(Combination)をすべて列挙してみようという記事を書きました。 今見ると、前に思っていた以上に「しょっぱいなぁ」と思わざるを得ませんが、C#で書き直すつもりになれません。 今回は、超イケてる言語のF#で書きま…
前回のエントリでモナドについて熱く語りました。今回はゆるいモナドの雑記です。 モナドを利用してFizzBuzz問題を書いてみることで、「モナドってなんなん?なにしてくれちゃってるん?」ということが、 もしかしたら分かるかもしれないよ、という息抜き的…
,. -‐'''''""¨¨¨ヽ (.___,,,... -ァァフ| あ…ありのまま 今 起こった事を話すぜ! |i i| }! }} //| |l、{ j} /,,ィ//| 『F#でIOモナドっぽい何かを作ろうとしていたら、 i|:!ヾ、_ノ/ u {:}//ヘ いつのまにか、全然別モノのLazyモナドをつくっていた。』 |リ u'…
セミナーとか・WebMatrix を使ってライブで作ろう! スマートフォン対応モバイル ASP.NET Web アプリ @jsakamotoさん。「オレのぐっときた」スマホアプリをライブコーディングでサクっと作る!坂本さんがとても輝いていました。 ・テスト駆動開発による安心開…
元ネタは、ゆろよろさんの プログラミング言語「ほむほむ」 - ゆろよろ日記(id:yuroyoro) http://d.hatena.ne.jp/yuroyoro/20110601/1306908421 F#でプログラミング言語「ほむほむ」以前実装したF#でGrassなプログラムをちょっと改造しただけの手抜きだが、 …
追記しました 元ネタは、以下あたり。 常識を覆すソートアルゴリズム!その名も"sleep sort"! - Islands in the byte stream http://d.hatena.ne.jp/gfx/20110519/1305810786 Sleep sortの各言語での実装まとめ – Yuyak http://www.yuyak.com/1339 ただいま…
とあるF#er達のつぶやき F#トリビア。いにしえからの言い伝えによると、パターンマッチを「match x with」と書く流派と「x |> function」と書く流派がございます。後者の方がネストを浅く保つことができるので私は好きです。 #fsharp2011-05-12 16:35:17 via…
とあるF#er達のつぶやき 判別共用体は直接公開してどうのこうのしたりするよりかは、内部的な実装は判別共用体でやって、アクティブパターンでインターフェイスを提供するというのがスマートっぽいよ。#fsharp2011-04-20 15:51:54 via Chromed Bird @zecl そ…
3月26日に参加した第56回CLR/H勉強会にて、WINGSプロジェクトさんより「独習ASP.NET第3版(翔泳社)」を頂きました。 WINGSプロジェクトさん、翔泳社さん、id:naoki0311さん*1、CLR/Hスタッフの皆さん、どうもありがとうございます。 独習ASP.NET 第3版作者: …
オブジェクト指向プログラミングが好きだ。関数型プログラミングが好きだ。 オブジェクト指向プログラミングオブジェクト指向プログラミングは、コンテナの一般性を確保している点で優れている。 データと振る舞いをコンテナとしてまとめることで、プログラ…
id:einblickerさんが、「F#で継続モナド - einblickerの日記」というステキな記事を書いてくださいました。グッジョブすぎる! 以前、F#で継続渡し形式(CPS)変換を抽象的に考えてみたら、それってつまりHaskellの継続モナドみたいなものでした。ということで…
前回のエントリ「F#でRxる。よく訓練されたF#erはコンピューテーション式をつくる。」で紹介いたしました、 Observableコンピューテーション式について補足します。モナド則を満たしているか否かについてです。 Haskellにおいて、モナドがモナド則を満たして…
いにしえからの言い伝えによると、よく訓練されたF#erはコンピューテーション式をつくるそうです。 Select Many: Reactive Extensions’ Mother Of All Operators (Chaining). お、SelectManyですね。 なるほどなるほど。計算を繋ぐもの。モナドですか。そこ…
第54回CLR/H勉強会(2011/01/15)にて、3つのセッションと、LTを行いました。 そのときの発表資料をSkyDriveにて公開します(5.3MB)。 01オブジェクト指向と契約による設計 ・オブジェクト指向と契約による設計.pptx 02Code Contracts入門 ・Code Contract入門…
Parsec(Haskell)のApplicativeスタイルがやばすぎるので、FParsecでApplicativeスタイルしてみた。 FParsecとはFParsec とは Haskell のパーサ・コンビネータライブラリ Parsec をF#に移植したものです*1。 では、パーサ・コンビネータとはなんでしょうか。…
実践 F# 関数型プログラミング入門作者: 荒井省三:いげ太出版社/メーカー: 技術評論社発売日: 2011/01/07メディア: 大型本購入: 6人 クリック: 264回この商品を含むブログ (26件) を見る まず、書籍のご紹介をさせていただきます。 荒井さん、いげ太さん共著…
のぶひささん(id:Nobuhisa)が、魔法的メモ化関数を書いてくださいました。 めもりんこ - (hatena (diary ’Nobuhisa)) 非常にふつくしいので、ぜひご覧になってください。 このエントリは「F# Advent Calendar jp 2010」第16回のものです。F# Advent Calendar…
追記あり なんとなく気が向いたので少しだけ。 主な環境 ・Windows 7 Home Premium ・SQL Server2008 ・F#2.0 まずはclr enabledの変更まず、SQL Server2008の構成オプションの 'clr enabled' を 0 から 1 に変更してSQL CLRを利用可能にします。 その後、RE…
バグのないソフトウェアを作りたいお仕事では主にVB.NETとC#を。趣味のプログラミングでは関数型言語F#を利用しています。 私自身のF#スキル(関数型的な考え方)は、まだまだ実践レベルとはとても言えないシロモノだけど、 面白い発見と多くの可能性を感じら…
第47回 CLR/H 勉強会(4/17)に参加しました。今回で6回目くらいですかね。 楽しく有意義な時間を過ごせました。講師の方、参加者のみなさんどうもありがとうございました! 今回はじめて、わたしもライトニングトークに登壇させて頂きました。 もともと人前…
というわけで、さっそくVS2010評価版をインストールしてみましたよ。めでたいですねw みなさんもデフォルト言語はF#に設定しましょう。そうしましょう。いやいや、そんなこと言わずに・・。 F#の仕様もこの短い期間でいろいろと変更が加わりました。 以前書…
以前、FlagsAttributeとビット演算のちょっとしたレシピという記事を書きました。 ご覧頂くとわかるように、とてもダサい実装になっています。記事を掲載してすぐに知人からツッコミがありました。 ツッコミがあったときにすぐに続編記事を書いて訂正しよう…
C#4.0およびVB10で利用できるようになった、System.Dynamic.ExpandoObjectクラス。 これはDLR(動的言語ランタイム)の相互運用モデルのひとつとして機能する。 例えば、ExpandoObjectクラスのインスタンスを、IronPythonの関数に渡すことができる。 このSyste…
遅ればせながら「WindowsForm終了のお知らせ」を感知WPFに関しては、仕事で使う機会もなく、自宅に満足な開発環境もなかったという理由で、 関連記事の流し読み程度はしていましたが、基本華麗にスルーしてきました。 しかし、Windows7が好感触だったり、今…
メモ化とはプログラムを高速化するための最適化技法のひとつで、 関数呼び出しの結果を保持しておいて再利用するというものです。 1度呼び出された関数が再度呼び出されたときに再計算をせずに、保持しておいた値を再利用する手法です。 具体的には、キーと…
F#は.NETの第一級言語だからオブジェクト指向だって余裕でできるよ関数型の考え方に基づいて、汎用的に使えるUndo,Redo機能の実装しようと考えたとき、 関数型言語のノウハウがない自分には、シックリくる良い案が全く思い浮かびませんでした。 F#は関数型パ…
[前置き] 継続とはプログラミングにおいて「継続」とは、ある計算のある時点における「残りの計算」を表す概念のこと。 つまり、ある計算過程の瞬間におけるその過程の未来全体を表すものを意味する。 プログラミング言語で継続を扱う機能を導入すると、ユー…
何故か流行ってる「ループを使わずに1から10までの総和を表示するプログラム」というお題 F#余裕のワンライナー #light {1..10} |> Seq.fold (+) 0 |> print_any 書いた。オチはない。 追記: とゆうか、F#にもsumありましたね。気付かなかったw #light {1.…
F#では「ワークフロー」という機能を備えることで、言語指向プログラミング*1のアプローチがし易くなっている。 これは開発者にメタプログラミング、DSLといった柔軟性を備えたライブラリを作成する機会を、 より多く与えてくれるのではないだろうか。この機…
id:NobuhisaさんのWorkflowでモナド - (hatena (diary ’Nobuhisa))に触発されてF#でStateモナドしてみました。 ですが、Haskellのド素人でF#初心者なのでいろいろと間違っているかもしれません。 とりあえず的に、取り急ぎコードをうpしておきます。(F#CTP)…