F#

java-object-diff を F# に移植

久しぶりの移植芸です。 移植理由 Persimmonの開発に必要みたいな話になり、かつ移植する時間のありそうな人間が他にいなかったとかそういう。 先達 https://github.com/SQiShER/java-object-diff さすがJavaさん、探せばだいたいでてくる。 成果物 https://…

継続を利用してAsyncコンピュテーション式を実装できるか試す

F#

Combine Deep Dives - ぐるぐる~ という記事にこういう文章があります。 このあたりを解決するために、Stateを使ったり継続を使ったりできるかもしれませんが、Async では未検証です。 そういえば検証したことはなかったなと思ったので、試してみました。 …

PaketとFAKEを使うようにした理由とか

F#

おはようございます。 たぶんこの時間帯は寝ているので、この記事はきっと予約投稿(どうでもいい)。 ここ数日、重い腰をあげて開発したりメンテしたりしているF#系ライブラリの一部でPaketとFAKEを使うようにしたり、最近の書き方に合わせた。 今回対象に…

最近使っている F# のライブラリやツール

F#

下記のF#版です。 最近使っているScalaのライブラリ - pocketberserkerの爆走 ここ1年くらいのものを対象にしています。 といってもそんなに数はない…。 ライブラリ 自分が開発に関わっているものは除外しています。 FSharp.Data https://github.com/fsharp/…

FAKEとgitbookとAppVeyorを組み合わせて、自動でビルドして生成したhtmlをgh-pagesブランチにcommitとpush

F#

あけましておめでとうございます。 年末年始の息抜きでやってたものをまとめておきます。 gitbookとtutとtravis-ciを組み合わせて、自動でビルドして生成したhtmlをgh-pagesブランチにcommitとpush - scalaとか・・・ これを F# でやろうという話です。 FAKE…

お前もnullにしてやろうか! #FsAdvent

F#

この記事はF# Advent Calendar 2015の31日目の記事です。 ガス欠なので役に立たないネタでお茶を濁します。 Noneはnullと解釈できる F#erの皆様はたいていprintf "%A" Noneを実行して<null>と表示されることに落胆したことがあるのではないでしょうか。 私は落胆し</null>…

GitBookを出力するためのFAKE拡張の試作品を作った #FsAdvent

F#

この記事はF# Advent Calendar 2015の30日目の記事です。 最近はやりのあの子 最近GitBookが流行っぽいですね。 GitbookIO/gitbook · GitHub そんでもって、Scala界隈では下記リポジトリのようにtut + GitBookでいい感じにコンパイルチェックもできるような…

fsugjp/publicというGitter roomについて #FsAdvent

F#

この記事はF# Advent Calendar 2015の28日目の記事です。 gitter.im 本日はfsugjp/publicというGitter roomについて書きます。 前にも書いたけど、もうちょっと詳しく。 どういう場所なのか roomの説明部分には下記のように書かれています。 F#関連について…

F# 4.0で入った地味だけど嬉しい機能紹介 #FsAdvent

F#

この記事はF# Advent Calendar 2015の26日目の記事です。 通常のアドベントカレンダーは25日までですが、F# 界隈では英語版が31日まで続けているのにあわせて31日くらいまでやるっぽいです。 4.0の変更一覧 下記のページを見るのがてっとり早いです。 F# 4.0…

TypeProviderでコンピュテーション式用の型を生成してみた #FsAdvent

F#

この記事はF# Advent Calendar 2015の25日目の記事です。 TypeProviderを使う 今までチュートリアルくらいしかTypeProviderは作ったことはなかったのですが、ようやく重い腰をあげて使うことにしました。 型プロバイダー(TypeProvider)のちょっとしたアレコ…

"ValueWithName"や"Auto-Quotation of Arguments at Method Calls"を使って変数名や関数名を取得する #FsAdvent

F#

この記事はF# Advent Calendar 2015の一日目の記事です。 Expr.ValueWithNameの話 以下のようなコードがあるとします。 let f a = <@ a @> let hoge = "Hi!" f hoge これはどう表示されるでしょうか? F# 3系までは以下のとおり(VS2013のF# interactiveで確…

Elm の automaton を F# に移植した

F#

おはようございます、ライブラリ移植するマンです。 つい先日、関数型ストリーム処理勉強会 - connpassという勉強会がありましたねというタイミングで、ElmのFRPライブラリが情報網にひっかかったので移植しました。 https://github.com/evancz/automaton au…

Persimmonはユニットテストを分散実行する夢をみるか?

F#

みるかもしれない。 どういうこと? かいつまんで問題を説明すると PersimmonというF#用テスティングフレームワークが存在する PersimmonでもRRRSpecやtest_queueみたいに分散実行したいね? Persimmonでのテスト実行の入力はdll アセンブリロードして アセ…

#fsharp 用テスティングフレームワーク Persimmon 1.0.0 をリリースしました

F#

https://github.com/persimmon-projects/Persimmon/releases/tag/1.0.0 https://github.com/persimmon-projects/Persimmon.Dried/releases/tag/1.0.0 https://github.com/persimmon-projects/FAKE.Persimmon/releases/tag/1.0.0 Testing Framework Meetingで…

テストという存在の型について考えてみる

いわゆるユニットテストフレームワークに現れる各種型について考えてみる。 成果は考えない。 このエントリは考えがまとまっていない段階で書かれたものであるため、間違っている可能性があります。 成果物(の途中経過) 途中結果を素っ飛ばした作成中のもの…

「Persimmonでテストを書く」での疑問点に回答してみる

F#

Persimmon でテストを書く — a wandering wolf 上記記事で2点ほどあがっていたものがあるので。 Usingがない 検証さぼってただけです、すみません。pull requestだしたのでそのうち入るかもしれません。 enable use keyword by pocketberserker · Pull Reque…

Functional Java の HList を C# に移植して F# 拡張を作った

前々からFunctional JavaにHListが存在するのは知っていたのですが、なかなか手をだせていませんでした。 で、最近Lensライブラリ移植の息抜きにちょっと時間があったので移植してみました。 そもそもHListって? heterogenous list。 日本語ではたまにヘテ…

F# User Goup Japan用のgitter roomができました

F#

タイトルの通りです。 fsugjp/public - Gitter yukitosさん++ 何する場所? F#についてゆるふわ喋る場所です。 以前から scalajp/public - Gitter みたいなのがF#にもあるといいなぁ、と思っていたので、嬉しい限りです。 どう書けばいいのか こういうライブ…

Quoteメソッドでコンピュテーション式に介入する(実践編?)

F#

全国コンピュテーション式ユーザの皆様こんにちは。 GWの進捗どうですか? 私は駄目です。 ネプテューヌVⅡを1周しようと思っていたのにまだできていません…。 さて、今回はQuoteメソッドを使ってコンピュテーション式への介入しようという話の実践編(?)です…

scalacheckのcommandsパッケージをPersimmon.Driedに移植

F#

ちったーを眺めていたら 気がついたら ScalaCheck の状態付きテストができるバージョンが出てた。 URL Erlang 版 QuickCheck をマネしたんだとか。 URL #scalajp2015-02-04 13:30:06 via Twitter Web Client というつぶやきが見え、そういえば干し柿にはまだ…

CoArbitraryの実装比較

全国 QuickCheck 系ユーザの皆様こんにちは、もみあげです。 今日は CoArbitraryとScalacheck - scalaとか・・・ に関連して、各言語の QuickCheck 実装の CoArbitrary や Arbitrary (a -> b) インスタンスについてみていきましょう。 CoArbitrary とは Quci…

Persimmon用のランダムテストライブラリ案(もしくは scalacheck の F# 移植)

あけましておめでとうございます。 さっそくですが進捗どうですか? 私は駄目でした(Persimmon用VS Test Explorer拡張的な意味で)。 今回はランダムテスト実装の話です。 Persimmon と FsCheck の相性について FsCheck には IRunner という、拡張ポイントが…

F# 製ユニットテスティングフレームワーク Persimmon について #FsAdvent

F#

この記事は F# Advent Calendar 2014 の27日目の記事です。 内容は今年の10月末あたりから作っている Persimmon というフレームワークについてです。 諸注意 本記事に書くことはあくまでpocketberserker個人の見解です。 他の開発者がどう考えているのかは …

FsCheckのこまごまとしたこと #FsAdvent

F#

全国のF#erの皆様こんにちは、もみあげことなかやんぺんぎんです。 ここからは F# Advent Calendar 2014の延長戦(25日目)です。 英語圏と張り合ってるわけじゃ、ないんだからね!? 今回は今年めでたく正式版がリリースされた FsCheck についてちょっとした…

FsAttoparsecについて

F#

この記事は F# Advent Calendar 2014の16日目の記事兼ML Advent Calendar 2014の16日目の記事になります。 今日はF# のネタリストの中から、FsAttoparsecについてです。 attoparsec とは attoparsec は Haskell のパーサコンビネータライブラリの一つです。 …

Async小話(末尾再帰関数)

F#

過去にTomas Petricekさんの非同期に関する記事を翻訳しました。 Async in C# and F#: Asynchronous gotchas in C# (Japanese translation) この記事の最後には以下の記述が存在します。 また、F# の async も問題を持っています(最も一般的な落とし穴は、…

コンピュテーション式の Tips

F#

この記事は F# Advent Calendar 2014 - connpass の初日の記事です。 12月になってしまいましたね、進捗どうですか?私は駄目です。 タイトルは"コンピュテーション式の Tips"となっていますが、中身は Basis.Core や "Persimmon 内で使われているコンピュテ…

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

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 実装に使う道具比較をメモしておきます。 言語比較したいわけではなく、論争を繰り広げたいわけでもないのであしからず。 あとてきとーに書いてる感は否めないので、間違っている言葉、表現、概念など…