読者です 読者をやめる 読者になる 読者になる

コンピュテーション式のカスタムオペレーターで遊ぶ

F#

柿プロジェクトを触っているときに思いついたネタです。 ホモビルダー 日本語を使ってみたかったので作ったもの。 ネタが思いつかなかったのでこのネタに…。 https://gist.github.com/pocketberserker/b0f67590f0bcc615b330 一番最初のカスタムオペレーター…

FsAttoparsecとattoの内部構造が変わった話とか

私が FsAttoparsec を実装し始めた5月頃、実は本家 attoparsec は内部構造を新しいものに変更していたということに先月末気が付きました*1。 どういう変更かというのは A major upgrade to attoparsec: more speed, more power | teideal glic deisbhéalach …

各言語でtype classesを実装する際に使いそうな道具とか

現時点における GHC、Scala、F#、Java の type classes 実装に使う道具比較をメモしておきます。 言語比較したいわけではなく、論争を繰り広げたいわけでもないのであしからず。 あとてきとーに書いてる感は否めないので、間違っている言葉、表現、概念など…

ermine-parser(scala-trifecta?)の F# 移植を試みたが…

F#

ermine-parser という、Haskell の trifecta を参考に実装されたパーサコンビネータライブラリが Scala には存在します。 ermine-language/ermine-parser · GitHub 今回はこれの F# 移植を試みました。 注意事項 F# で推奨される実装、ガイドラインから逸脱…

F# で高階型のエミュレーション

この記事では、F# で 高階型 (higher kinded types) をエミュレーションすることについて記述します。 本当は 函数型なんたらの集い 2014 in Tokyo - connpass で話そうと思っていたのですが、運営を考えると発表できる気がしなくなった*1ので、記事にしてお…

F# でFree MonadとOperational Monad(未完成)

F#

JavaでFreeモナドを表現するためのテクニックやexistential type(存在型)の話 - scalaとか・・・ JavaでFree Monadを実装する際のテクニックをxuweiさんが解説されているので、F#側も少し説明してみようと考えた次第です。 筆者はCLIやジェネリックに詳しく…

"JavaでFree Monad"をF# に移植してみた

F#

JavaでFree Monad - scalaとか・・・ 上記記事で紹介されているFree Monad in Java*1をF#に移植してみた。 https://github.com/pocketberserker/free-monad-fsharp 実用的かどうかとかF#っぽいかなどは置いておくとして、表現できなくもないようである。 実…

もみあげは如何にしてF# を学んだか

F#

現実逃避の一環として、私(私をもみあげと呼ぶ人もいる)がどうやってF#を学んだか書き下してみる。 ダイジェスト その言語に詳しい方からおすすめ書籍を教えてもらって学ぶ 挫折する 気が向いたときに1時間弱でできるコードを書いては晒す(ブログ、gistにか…

F# のパーサコンビネータライブラリ事情

F#

F# のパーサコンビネータに関するメモ書きです。 情報が揃ったら、Qiitaに投下するかもしれません。 種類 ここでは3つのライブラリを対象にします。 FParsec ParsecClone FsAttoparsec 他にも「これかけよ!」などあればご連絡ください。 FParsec http://www…

パーサコンビネータを使って簡単なNGワードフィルタリング機能を作る

F#

昔、 RSpec の入門とその一歩先へ - t-wadaの日記 を読んで「自分だったらどうつくるかなー」と考えていた。 そして時が経ち、パーサコンビネータを知った今となっては、簡単なものであればこれでいいんじゃないかと思っている。 というわけで、以下は F# の…

F# 用非公式 MessagePack ライブラリを作ってみている

F#

F# 特化型です。 ソースコード URL https://github.com/pocketberserker/FSharp.Data.MsgPack ライセンス Apache License 2.0 公式 公式は CLI 向けの msgpack-cli が存在します。 URL https://github.com/msgpack/msgpack-cli なぜ作ったの? 公式のものが …

F# プロジェクトが利用できそうな外部CIサービスについてのメモ

タイトル通りだけど無料版っぽいものがあるもののみ対象。候補は4つ。 Travis TeamCity AppVeyor Visual Studio Online Travis http://travis-ci.com/ みんな大好き Travis ちゃん。 どうやって動かすのかと思いきや、なんとLinux系ならapt-get、Macならmono…

F# でCPS版List.foldを作ってみよう

F#

自分用メモ。 まず fold を作る よく知られる List.fold の定義は、わかりやすいものであれば以下の様な形。 let rec fold' f acc = function | [] -> acc | x::xs -> fold' f (f acc x) xs これをCPS(継続渡しスタイル)に書き換えると // ('a -> 'b) -> (('…

継続渡しスタイルを使ってListコンピュテーション式を実装する

F#

引き続き、コンピュテーション式を継続渡しスタイルで実装する編です。 今回は、 コンピュテーション式におけるreturnとyield - ぐるぐる~ で定義されているListコンピュテーション式を、継続渡しスタイルで実装してみましょう。 なお、Using や Whileなど…

Listコンピュテーション式にyield breakもどきを作れないかあがいてみた

F#

コンピュテーション式におけるreturnとyieldにも書かれている通り、カスタムオペレーターで yield break を実装することはできません。では、型の力をつかってどうにかできないか、とあがいてみました。 Builder の定義 前述の記事で掲載されている ListBuil…

コンピュテーション式のSourceメソッドを試す

F#

前提 以下のエントリを読んでいることが推奨されます。 詳説コンピュテーション式 注意 src(e) は、ビルダーがSourceメソッドを持っており、 かつ最も内側のForEachがユーザによるもの(変換により生成されたコードではなく、ユーザが書いたコードであるとい…

コンピュテーション式の Quote メソッドで変換結果を見る

F#

前提 以下のエントリを読んでいることが前提となります。 詳説コンピュテーション式 また、F# のコードクォートに関する知識を持っていると、理解しやすいと思います。 今回のお話 QuoteメソッドはExprを取るRunとセットで拡張すればいいって話をお昼に @poc…

コンピュテーション式の実装にStateを用いる

F#

この記事は、以下の素敵記事にかなり依存しているので、先に下記記事を読んでください。 詳説コンピュテーション式 本記事は上記記事内の whileを実用するためのCombine において、 ちなみに、simple を関数にしなくても済む方法があります。 それを実装した…

FSharp.Core.Printf モジュールについてのメモ

F#

メモ。そのうち記事に昇格するかも。間違っているかもしれないので、質問疑問指摘その他お待ちしております! msdn Core.Printf モジュール (F#)読みにくいので英語のほう読んだほうがいいかもしれない。 printf, printfn System.Console.Out に書き込む。n …

「Javaで継続モナド」をF# に翻訳

F#

F# Advent Calendar 20135日目の…記事の予定でした…主催者でありながら大遅刻して申し訳ありません。 ネタは? @gakuzzzz さんの 「Javaで継続モナド」をScalaに翻訳/Scala Advent Calendar 2013 や、その元ネタである が面白かったため、急きょネタ変更して…

TFServiceを使って F# プロジェクトのビルドを試した時のメモ

F#

そういえば、TFServiceを触ったことがないなーということで、作業メモ。 とはいえ、基本的に以下の記事を参考にすればビルドとテストが行えるようになります。 TFService 入門(1):Team Foundation Server/Serviceについて Team Foundation Service で既存プ…

"Async in C# and F#: Asynchronous gotchas in C#"を翻訳しました

C# F#

4月末に C#の非同期の落とし穴 でとりあげられていた Async in C# and F#: Asynchronous gotchas in C# を読みながら「面白いなぁ」とつぶやいたところ、ハマの子連れ狼さんに翻訳を勧められたので、英文和訳の訓練も兼ねて翻訳しました。Async in C# and F#…

ScalaやHaskellのライブラリをF# に移植するときのTips?

個人的にはF# の中での理想やりっろーんを追い求めてみたい感もある2012-11-03 19:54:43 via Janetterこんなことを思っていたりすることもあるため、HaskellやScalaに面白そうなライブラリがあると聞きつけるとF# に移植できないか試したくなります。で、い…

F# にMachinesの移植を試みている

F#

某都会ではekmett氏のライブラリを勉強する会があるらしい。http://partake.in/events/1698f7f8-4151-4048-b317-03a8c3f1a7abうらやましいとかそういうことはすごくあるのだけれど、行けないものは仕方がないので自前環境でとりあえずは我慢することに。 本…

今年はじめのTDDBC大阪(通称3.0)を開催しました

1/12に2013年はじめのTDD Boot Camp in 大阪を、1/13に2013年はじめのTDD Boot Camp in 大阪 外伝を開催しました。 色々と書きたいことはあるのですが現在進行形で修論の理に導かれているので、空き時間に随時更新していきます。 謝辞 会場スポンサーの株式…

NaturalSpec+unquoteで出力をリッチにしようとしたけど現実は厳しかった

TDD Advent Calendarの没ネタその9。先月やってみようと思っていて忘れていた一品(昨日思い出した)。 PowerAssertあるよね Groovyのあれ。あれいいよね見やすくて。 F# でも似たようなものがあるよ その名もunquote。本家サイトトップページの一番下に"Unq…

第2回 関数型言語勉強会 大阪で発表しました

気がついたら2週間以上経過していました…書く書く詐欺ですね。 資料とか F#+Erlangで簡単なシューティングゲームを作ってみている from pocketberserker あまり実用っぽい話ではないのですが、こんな感じで楽しく好き勝手に学んでいけばそのうち書けるように…

名状し難きFsCheck入門のようなもの

F#

皆さんこんばんは、F# Advent Calendar 2012の6日目ですね。いかがお過ごしでしょうか? 私は前5名の記事を見ながら胃が痛いなと感じています。 本題の前に 前日のnakamura_toさんの記事に登場するシグネチャファイルの話について、思うところがあったので私…

F# でHaskellのIntMapを実装してみた

F#

10日ほど前の話ですが、HaskellのIntMapをF#に移植してみました。 移植理由はHaskellのBK-treeが内部でIntMapを利用していたからです。 FSharpxに取り込んでもらっています。https://github.com/fsharp/fsharpx/blob/master/src/FSharpx.Core/DataStructures…

HaskellやScalaでの実装を参考にF# でBKTreeを実装してみた

F#

Scalazの眺めていたら、面白そうなものがあったので自作してみました。 ただし本実装では、Scalazのコードを参考にしているわけではなく、Scalazコード内でコメントに書かれていたHaskellのbktrees-0.3.1ライブラリを参考にしています。実装したコードはこち…

WebSharper(F#)でWebSocket

F#

WebSharperって何ぞやという方や触ったことのない方は下記otfさんの記事を先に読んでください。F# WebSharperで関数型的ウェブ開発 - 無料でプログラミングを教えます日記ところでこのWebSharperさんは、HTML5やWebSocketにしっかり対応しています。これは試…

函数プログラミングの集い 2012 in Tokyo で発表しました

昨年は参加できなかったので今年こそ!という気持ちでした。函数プログラミングの集い 2012 in Tokyo - PARTAKE1ヶ月前までは参加のみで考えていたのですが、発表ネタができたので勇気をだして発表に申し込みました。 発表資料とか FP習熟度レベルとFSharpx…

素数の時にJoJo -F#-

F#

素数のときにJOJO!と出力するのが今の流行らしい。素数のときだけ"JOJO!"って出力するプログラム - Togetterまとめで、 F# でJOJO素数はなかやんが書いてくれると思うが、僕はなにで書くべきか。 #jojoprime [うさみみ*´×`*エンジニア]2012-08-12 14:44:5…

初pull requestはFSharpxでした

F#

OSSライブラリへのpull requestは人生初だったので、記念にブログに残しておきます。Fix Iteratee.bind by pocketberserker · Pull Request #81 · fsprojects/fsharpx · GitHub「ありゃ、バグ踏んだかな?」と思ったときに引き返すことも考えたのですが、@ky…

F# でIteratee,Enumerator,Enumeratee関数を作成する(の途中経過)

F#

先日、FSharpxのIterateeモジュールで遊んでみた。FSharpxのIterateeで遊ぶ - pocketberserkerの爆走ただ、FSharpx.Iterateeで提供されている関数はHaskellのそれに比べて随分と少ないように思える。なので自作してみようと思ったのだが・・・ちょっと挫折気…

FSharpxのIterateeで遊ぶ

最近Haskellを勉強してるぺんぎんです。 「F#全然やってないじゃない」と言われそうですが、決して浮気しているわけではありませんよ? FSharpxでIteratee ところで、Haskellの記事を漁っているとIterateeの話がでてきたりする。そしてF#では、FSharpxという…

FParsecを利用して作成したパーサをUnityのスクリプト上で利用する

半年振りのUnity(ゲームエンジン)ネタです。かつてF# で作成したライブラリをUnityのスクリプト上で利用する - pocketberserkerの爆走な記事を書いたわけですが、じゃあFParsecも動くのでは?という楽観的考えから試してみることにしました。 FParsecの準備 …

F# でEither型のテストを書く

F#でEither型を利用することはよくあることでしょう。特に例外処理関連で。 type Either<'T, 'U> = | Left of 'T | Right of 'U さて、このEitherは色々な状況で使用できるのですが、F#でもっとも利用頻度が高い場面は例外処理のとき。 let divide x = funct…

TDD Pre Camp大阪に行ったような

TDD Pre Camp 大阪 : ATND管理者は私になっているが主催者はきっと大阪の人だと信じる。 で、何やったのさ? お昼まで会場で寝てました。TDDBC1.5 お題 自動販売機昼からは上記お題を使ってTDDBCにむけての素振り。 で、君のコードは? 続きを作っていたので…

なごやの #CDStudy と #scmbc に参加した、ような…

4/21〜4/22にかけて、なごや遠征に行ってきました。4月21日 継続的デリバリー読書会(愛知県) 4月22日 SCMBootCamp in Nagoya 1 #scmbc(愛知県) 行く前の予習編 うさみみさんに「読書会前に対象書籍と関連書籍を読み終わっていないとか(ry」と言われそうだな…

Dictionaryクラスを使って高速化を試みる

F#

前回、バラバシ=アルバートモデルの次数分布計算コードをF#で作ってみたわけである。 でもこのコード、aggregateがあまりにも遅い。いくら副作用がないとはいえ、この実行速度の遅さは許容しがたい。時間は大切なのだ。 なので今回は、内部でこっそりDictio…

バラバシ=アルバートモデルの次数分布計算コードをF# で作ってみる

F#

講義のレポート的な何か(忘却用メモ書き)。 バラバシ=アルバートモデルでネットワークをNまで成長させたとき、次数の分布がベき則に従うことを示せ、とかそんな感じの課題である。 ところで、レポートにプログラミング言語の指定はなかった。 ならF#で作る…

Kinect for Windows SDKで、アプリを挿抜に対応させる(F# + WPF)

KINECT SDK Advent CalendarのときにKINECT SDK Beta2 で、アプリを挿抜に対応させる(F#+WPF+Rx) #kinectsdk_ac - pocketberserkerの爆走という記事をかいたわけですが、Kinect for Windows SDKがリリースされたのにあわせて修正してみました。 よりF#っぽい…

Kinect for Windows SDK で RGBカメラの画像表示(F# + WPF)

BetaではないKinect SDKがリリースされたのでBeta時代に作ったコードを軽く調整して動かしてみました。 参照の追加 Kinect SDK Kinect Toolkit ReactiveExtensions XAML <Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="MyKinectApplication" Height="600" Width="800"> </window>

F# で作成したライブラリをUnityのスクリプト上で利用する

ゲームのほうのUnityの話です。 UnityはMonoを基盤としており、スクリプト内で.NETなライブラリはもちろん、自作ライブラリをUnity側で読み込んで使うことだってできます。 そのライブラリ、F#で作ろうず! こうなると、ロジック部分はF#で作りたいですよね…

F# + KINECT SDK Beta2で音声認識 #kinectsdk_ac

この記事はKINECT SDK Advent Calendar 2011 : ATNDの12月16日分です。 今回はKINECT SDKに同梱されているサンプルプログラム「Speech」と同等のものをF#で書いてみました。 このサンプルはred、blue、greenの3単語を判別するコードで、KINECT SDKでの音声認…

KINECT SDKのサンプル「SkeletalViewer」をF# 化する

このエントリはF# Advent Calendar 2011 - PARTAKE兼KINECT SDK Advent Calendar 2011 : ATNDの12月8日分になります。 今回はKINECT+XNA+WPF連携…を紹介したかったのですが、作成途中で間に合わないと判断したためSkeletalViewerを題材にしたいと思います。

KINECT SDK Beta2 で、アプリを挿抜に対応させる(F#+WPF+Rx) #kinectsdk_ac

このエントリはKINECT SDK Advent Calendar 2011 : ATNDの12月7日分です。

はじめてのF# de KINECTプログラミング #kinectsdk_ac

このエントリはKINECT SDK Advent Calendar 2011 : ATNDの12月2日分です 修正・追記 12/5 ImageコンポーネントをXAML側で定義するようにしました。あわせて説明も修正しています。 12/5 XAML側の説明でコードを貼り付けていなかったのではりつけました

F# でKinectプログラミング(はじめのいっぽ)

このたび、諸事情によりKinectセンサーを扱うことになったので勉強がてらブログに貼り付ける。 私はC#をほとんど知らないので、コードはひたすらF#で記述されていく予定です。 なお、Kinect for Windows SDKを使います。 今回ははじめにということで、先人の…