読者です 読者をやめる 読者になる 読者になる
ようこそ。睡眠不足なプログラマのチラ裏です。

TypeProvider に関するちょっとした小ネタ集

F# Advent Calendar 2016 の 22日目の記事です。 TypeProviderについては以前、 型プロバイダー(TypeProvider)のちょっとしたアレコレというのを書きました。 書いたのはそーとー前ですが、今でも割と役に立つかもしれない以下の話題について扱っているので…

Comm Tech Festival D-3 「open FSharp」 (続きはWebで)

@ufcpp さんにお話しをいただいて Comm Tech Festival に参加してきました。ありがとうございました。 comuplus.doorkeeper.jp 「open FSharp」というタイトルで発表させていただいたのですが、時間配分がうまくいかずにスライドの最後まで紹介することがで…

F# Build Tools for Unity(ゲームのやつ) - UniFSharpのご紹介

これは F# Advent Calendar 2014の延長戦、 30 日目の記事です。 書いたきっかけ @zecl ML Advent カレンダーに書いてくださいよーw F#の人達は知ってるけど、MLな人は知らないとかあるかもしれないですし。— h_sakurai (@h_sakurai) 2014, 12月 10 結局、25…

型プロバイダー(TypeProvider)のちょっとしたアレコレ

一応、型プロバイダー(TypeProvider)のとりとめもない話 の続き。 ちょっと草植えときますね型言語Grass型プロバイダーを作った後、少し思い違いをしていた事に気付いたのが事の発端。この記事では、FsBulletML.TypeProvidersを作成する過程で得た、型プロバ…

型プロバイダー(Type Provider)のとりとめもない話

だらだらと型プロバイダー(Type Provider)のとりとめもない話。ほとんど内容はないよう。 型プロバイダーって何? F#3.0 から利用できる目玉機能のひとつ。 これが発表されたとき、「LINQ + Type Providers = Information Rich Programming」なんて言われて…

printf系の "%A" 書式指定子における型の表示レイアウトのカスタマイズ

判別共用体を文字列として出力する際に、ケース識別子を宣言する型(判別共用体)の名前を含めたフルネームで文字列化したくなったときのお話。 たとえば、以下を実行すると = | Leaf of 'T | Node of Tree * Tree let tree1 = Node(Node(Leaf("a"),Node(Lea…

判別共用体で型付きDSL。弾幕記述言語BulletMLのF#実装、FsBulletML作りました。

この記事はF# Advent Calendar 2013の20日目です。 遅ればせながらThe Last of Usをちびちびとプレイ中。FF14のパッチ2.1が先日リリースされ、メインジョブ弱体化にもめげず引き続き光の戦士としてエオルゼアの平和を守り続けている今日この頃。艦これは日課…

VB、C#、F# それぞれのインデクサ。F# コンパイラのソースを読んで。

F# コンパイラのソースを読んで はぇ〜さん(@haxe) とtwitterにて、以下のようなやり取りがありました。 ところで #fsharp の for m in Regex.Matches(input, pattern) do () はGetEnumerator()をしてくるわりに、m : Match に解決してくれるのはなんでだろ…

クリップボードの文字列を、「突然の死」テンプレートに置き換えるやつ

元ネタ 「突然の死」をTwitterへ簡単に送り出せる「突然の死ジェネレータ」 - GIGAZINE http://gigazine.net/news/20120703-suddenly-death/ _人人人人人_> あなた <> と <> JAVA < ̄Y^Y^Y^Y^Y ̄なんとなく、複数行に対応URL2013-05-10 14:57:53 via…

マルコフ連鎖とビタビアルゴリズム(HMM)を F# で。

元ネタ昼食時に店で流れていた、大事MANブラザーズバンド「それが大事」の歌詞が、あまりに繰り返しばかりなので、状態遷移図を作りました。どうぞご利用下さい。 http://youkoseki.com/soregadaiji/ 「それが大事」にマルコフ連鎖を適用してみる https://ww…

ステップアップでわかるコンピュテーション式。TryWith や TryFinally などの実装にぜひ活用したい Delayと Run

全国1億2千万人の F# ファンの皆様いかがお過ごしでしょうか。理解できるわけもないとわかっていながらも調子に乗って「型システム入門 プログラミング言語と型の理論」を買ってしまった系の痛いおじさんです。10年後、20年後にわかることができてたら…

すべての F# ユーザーが今すぐ導入すべき拡張機能 F# snippet を導入しよう

twitter や facebook こういった SNS があなたの仕事の邪魔をしている。いつ仕事をするか?その合間でしょ?(逆でしょ!) そんな今日この頃ですがみなさんいかがお過ごしでしょうか。 F# HACKATHON in sapporo [2013/03/23(土)] は、リモートでの参加も…

すごいH本の素朴な確率モナド

年末年始の連休から中五日あっての三連休で、正月ボケをぶり返してしまいそうな今日この頃ですが、いかがお過ごしでしょうか。 すごいH本こと、書籍「すごいHaskellたのしく学ぼう!」の最後のほう、第14章「もうちょっとだけモナド」の 14.8 (P356)にて、…

Mが如くF#ive 夢、叶えしMono

この記事は、F# Advent Calendar 2012 の12日目です。ひとつ前の記事は@katayama_kさんの「スキャナが出力したPDFを、出力デバイスに合わせて変換しよう-F#マスターへの道」です。ありがたいことにソースコードを公開してくださっているので、iTextSharpを使…

圏論でアハ体験

もう1週間以上前になりますが、Code2012という合宿イベントに参加してきました。いろいろな方との交流あり、温泉あり、クラウディアさんありと大変楽しかったので、ぜひ来年も参加したいです。 で、VBerのくせにそちらで「5分じゃわからないモナド - 圏論な…

はじめの一歩。まずはパイプライン演算子と合成演算子から。

今月末の7月28日、29日と、Code2012という合宿イベントに参加する予定です。F#や関数型について語り合える人がいない場合は割とボッチになりそうな気もしていますが...、それならそれで適当に楽しんでこようと思っています。というわけで、いつものように「…

F#で shift/reset プログラミング。限定継続(風)モナドで四天王問題を解く。

発売されてすぐにPSVitaのP4Gをダウンロードしたのだが、どちらかというとエヴィディ・ヤングライフ・VB6♪な生活を送っていてなかなかプレイする暇がなくてつらい。今日はGoAzureのゆーすと見たり、この記事をこしらえていたりな休日を過ごしていましたが、…

F#3.0で加速する言語指向プログラミング(LOP)。コンピューテーション式はもはやモナドだけのための構文ではない!!!

マーチン・ファウラー先生の黒いDSL本(翻訳版)が5月2日に発売されました。遅ればせながら私も最近購入して熟読しているところです。 この本が示すDSLの種類や内容は、あくまでもオブジェクト指向というコンテキストにおいてのものであり、関数型言語によるDS…

F#で逆FizzBuzz問題

元ネタ 逆FizzBuzz問題 (Inverse FizzBuzz) - 猫とC#について書くmatarilloの雑記 http://d.hatena.ne.jp/matarillo/20120515/p1 面白いなあ / “逆FizzBuzz問題 (Inverse FizzBuzz) - 猫とC#について書くmatarilloの雑記” URL2012-05-16 12:30:42 via Hatena…

F#で簡素なモゲマスコンプガチャシミュレータ

椎名林檎「自由へ道連れ」をヘビロテしすぎて脳内無限ループしている今日この頃ですが、皆様いかがお過ごしでしょうか。 時事ネタとしては旬を逃した感じですが、簡素なコンプガチャシミュレータをF#で書いてみました。 とは言っても、この記事で伝えたいこ…

ScalazのValidationもFSharpxのValidationもApplicative

ドラゴンズドグマが楽しみだったり、しおりを温めていたScala実践プログラミングの読書を再開したりな今日この頃。 ご多聞に漏れずわたくしも五月病なので軽めのネタで。とゆーかですね、FSharpxのステマです。 FSharpxのValidationでFizzBuzz元ネタScalazの…

Retry Monad for Transient Fault Handling (Topaz + FSharpx)

4月14日に札幌で行われた第69回CLR/H勉強会にて、「Retry Monad for Transient Fault Handling - F#とWindows Azure と私 -」と題して、ライトニングトークで発表しました。 Retry monad for transient fault handling View more presentations from zecl123…

F# Implementation of BackPropagation Neural Network for Pattern Recognition(LifeGame)

この記事は、F# Advent Calendar 2011の21日目です。 きっかけは、11月19日に札幌で行われた第64回CLR/H勉強会で、愛甲健二さん(@07c00)がお話してくれた「コンピューターに萌えを教えてみたよ」というセッションです。「アダルトサイトの検知」のメカニズム…

パケットの送受信量(F#) - ループとbreak

元ネタ パケットの送受信量 (C#)(F#) - SIN@SAPPOROWORKSの覚書 http://d.hatena.ne.jp/spw0022/20111116/1321437712 F#のwhileにbreakが無いのを知って愕然とした。F#では通常、whileは使用しないのかな? URL2011-11-16 19:01:55 via Hatena 確かにC#やVB…

ARPテーブルの取得(F#) おまけもあるよ。

元ネタ:ARPテーブルの取得 (C#)(F#) - SIN@SAPPOROWORKSの覚書 http://d.hatena.ne.jp/spw0022/20111108/1320700838 SINさんがF#を書きまくっている今日この頃。F#の街札幌のF#りょくの高まりを感じざるを得ない。 F#らしい書き方かどうかはわかりませんが…

第63回 CLR/H勉強会の資料「とことんF#よぷよ! F# + XNA ゲームプログラミング入門」を公開します。

「とことんF#よぷよ! F# + XNA ゲームプログラミング入門」と題してお話してきました。 とことんF#よぷよ! F# + XNA ゲームプログラミング入門 View more presentations from zecl1231 (前回のエントリにて、「とことんF#よぷよ!」の全ソースコードを公…

とことんF#よぷよ! 第 63 回 CLR/H 勉強会で、F#とXNAを題材に発表します。

F# + XNAでとことんF#よぷよ!してみました 「ダークソウル」で心が折れそうな日々を送っている今日このごろですが、みなさんはいかがお過ごしでしょうか。 F# + XNAで「とことんぷよぷよ」っぽいものを実装してみました(はじめてのXNAゲームプログラミング…

F#でのパターンマッチ。「match a with 〜」よりも 「a |> function 〜」を使おうぜ(異論は認める)

カンスウガタゲンガーは割と見逃しがちだけど、match a with ?と a |> function ?は完全互換ではありません #えふしゃーぷあるある #fsharp2011-09-02 16:08:23 via web @zecl え?そうなんですか?まったく同じものだと思ってました。。。2011-09-02 18:08:…

ふと、Seq.tryFindの変な(誰得な)使い方を思いついた。F#でbreakとcontinue再び。

以前、「F#で楽々breakとcontinue。継続モナドまじパネぇっす!」を書きました。 確かに楽々ではあるんですが、継続モナドとかマジで難しいですよ。 しかも、Visual Studioでデバッグとかまともにできないですし...(´・ω・`)ショボーンな気持ちになっちゃいま…

第60回CLR/H勉強会でLT登壇しました。「すっぱいぶどう」の話。

7月16日に参加した第60回CLR/H勉強会にて、LT登壇しました。 Clrh60 lt View more presentations from zecl1231 http://www.slideshare.net/zecl1231/clrh60-lt アップしたらなんか崩れちゃったけど気にしない。 制限時間5分きっかりでお話するという都合上…

F#で順列(Permutation)と組み合わせ(Combination)。YOU、Listモナドしちゃいなよ。集合モナドもあるよ。

以前、C#で順列(Permutation)と組み合わせ(Combination)をすべて列挙してみようという記事を書きました。 今見ると、前に思っていた以上に「しょっぱいなぁ」と思わざるを得ませんが、C#で書き直すつもりになれません。 今回は、超イケてる言語のF#で書きま…

FizzBuzz問題から学ぶモナド

前回のエントリでモナドについて熱く語りました。今回はゆるいモナドの雑記です。 モナドを利用してFizzBuzz問題を書いてみることで、「モナドってなんなん?なにしてくれちゃってるん?」ということが、 もしかしたら分かるかもしれないよ、という息抜き的…

快刀乱麻を断つモナド - F#とIOモナドとコンピューテーション式の奥義と

,. -‐'''''""¨¨¨ヽ (.___,,,... -ァァフ| あ…ありのまま 今 起こった事を話すぜ! |i i| }! }} //| |l、{ j} /,,ィ//| 『F#でIOモナドっぽい何かを作ろうとしていたら、 i|:!ヾ、_ノ/ u {:}//ヘ いつのまにか、全然別モノのLazyモナドをつくっていた。』 |リ u'…

オープンソースカンファレンス2011 Hokkaidoに行ってきた。「後悔なんて、あるわけない」

セミナーとか・WebMatrix を使ってライブで作ろう! スマートフォン対応モバイル ASP.NET Web アプリ @jsakamotoさん。「オレのぐっときた」スマホアプリをライブコーディングでサクっと作る!坂本さんがとても輝いていました。 ・テスト駆動開発による安心開…

ほむ。F#でプログラミング言語「ほむほむ」して、さらに「ほむほむ」した

元ネタは、ゆろよろさんの プログラミング言語「ほむほむ」 - ゆろよろ日記(id:yuroyoro) http://d.hatena.ne.jp/yuroyoro/20110601/1306908421 F#でプログラミング言語「ほむほむ」以前実装したF#でGrassなプログラムをちょっと改造しただけの手抜きだが、 …

F#でsleep sort

追記しました 元ネタは、以下あたり。 常識を覆すソートアルゴリズム!その名も"sleep sort"! - Islands in the byte stream http://d.hatena.ne.jp/gfx/20110519/1305810786 Sleep sortの各言語での実装まとめ – Yuyak http://www.yuyak.com/1339 ただいま…

F#では、パターンマッチを「match x with」と書く流派と「x |> function」と書く流派がございます。

とある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 そ…

独習ASP.NET第3版を頂きました。

3月26日に参加した第56回CLR/H勉強会にて、WINGSプロジェクトさんより「独習ASP.NET第3版(翔泳社)」を頂きました。 WINGSプロジェクトさん、翔泳社さん、id:naoki0311さん*1、CLR/Hスタッフの皆さん、どうもありがとうございます。 独習ASP.NET 第3版作者: …

オブジェクト指向は、シンプルできれいだが脆い。関数型プログラミングは、強く美しいが複雑。F#はいろいろな書き方が混ぜこぜになるよ。楽しいよ。

オブジェクト指向プログラミングが好きだ。関数型プログラミングが好きだ。 オブジェクト指向プログラミングオブジェクト指向プログラミングは、コンテナの一般性を確保している点で優れている。 データと振る舞いをコンテナとしてまとめることで、プログラ…

F#で楽々breakとcontinue。継続モナドまじパネぇっす!

id:einblickerさんが、「F#で継続モナド - einblickerの日記」というステキな記事を書いてくださいました。グッジョブすぎる! 以前、F#で継続渡し形式(CPS)変換を抽象的に考えてみたら、それってつまりHaskellの継続モナドみたいなものでした。ということで…

Observableコンピューテーション式はモナド則を満たしているか否か。

前回のエントリ「F#でRxる。よく訓練されたF#erはコンピューテーション式をつくる。」で紹介いたしました、 Observableコンピューテーション式について補足します。モナド則を満たしているか否かについてです。 Haskellにおいて、モナドがモナド則を満たして…

F#でRxる。よく訓練されたF#erはコンピューテーション式をつくる。

いにしえからの言い伝えによると、よく訓練されたF#erはコンピューテーション式をつくるそうです。 Select Many: Reactive Extensions’ Mother Of All Operators (Chaining). お、SelectManyですね。 なるほどなるほど。計算を繋ぐもの。モナドですか。そこ…

第54回CLR/H勉強会発表資料を公開します。

第54回CLR/H勉強会(2011/01/15)にて、3つのセッションと、LTを行いました。 そのときの発表資料をSkyDriveにて公開します(5.3MB)。 01オブジェクト指向と契約による設計 ・オブジェクト指向と契約による設計.pptx 02Code Contracts入門 ・Code Contract入門…

モナディックなパーサ・コンビネータFParsecを使おう。てゆうかParsec(Haskell)のApplicativeスタイルがやばい。

Parsec(Haskell)のApplicativeスタイルがやばすぎるので、FParsecでApplicativeスタイルしてみた。 FParsecとはFParsec とは Haskell のパーサ・コンビネータライブラリ Parsec をF#に移植したものです*1。 では、パーサ・コンビネータとはなんでしょうか。…

C#からF#のクロージャを利用するには、こんな風にしたらいんじゃないの的サンプル

実践 F# 関数型プログラミング入門作者: 荒井省三:いげ太出版社/メーカー: 技術評論社発売日: 2011/01/07メディア: 大型本購入: 6人 クリック: 264回この商品を含むブログ (26件) を見る まず、書籍のご紹介をさせていただきます。 荒井さん、いげ太さん共著…

メモ〜化したりスマス。 Memoization and Tail Recursive Function

のぶひささん(id:Nobuhisa)が、魔法的メモ化関数を書いてくださいました。 めもりんこ - (hatena (diary ’Nobuhisa)) 非常にふつくしいので、ぜひご覧になってください。 このエントリは「F# Advent Calendar jp 2010」第16回のものです。F# Advent Calendar…

F#でSQL CLRしちゃうことは一応可能なんだけど、正式にはサポートはされていないのね。そりゃそうだよね。

追記あり なんとなく気が向いたので少しだけ。 主な環境 ・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#スキル(関数型的な考え方)は、まだまだ実践レベルとはとても言えないシロモノだけど、 面白い発見と多くの可能性を感じら…

C#とF#で、ちょっと草植えときますね型言語 Grassインタプリタを実装してみました。

第47回 CLR/H 勉強会(4/17)に参加しました。今回で6回目くらいですかね。 楽しく有意義な時間を過ごせました。講師の方、参加者のみなさんどうもありがとうございました! 今回はじめて、わたしもライトニングトークに登壇させて頂きました。 もともと人前…