最小のコンピュテーション式

F#

メモ。 使う規則 T(e;, V, C, q) = C(e;b.Zero()) この規則がvalidなコンピュテーション式を作れるはず。 Zeroメソッドのみを用意すれば良いのでBuilderの実装も最小限なはず?*1 コード // 定義 type A() = member x.Zero()=() let a = A() // 実際に試す a…

.NET Fringe Japan 2016の個人的な振り返り

dotnetfringe-japan.connpass.com 運営及び発表者として参加しました。 運営といっても、勉強会運営に慣れている方が多かったのでやること・やらないことが初期から明確だった気がします。 当日の懇親会周りの運営を手伝えなかったのは申し訳なく思いつつ………

ueberauth_qiitaとueberauth_hatenaを作った

久々にElixirネタ。 といっても表題がすべてを表していますが……。 https://github.com/pocketberserker/ueberauth_qiita https://github.com/pocketberserker/ueberauth_hatena ueberauthはElixir向けの認証ライブラリで、RubyのOmniauthに強い影響を受けて…

TypeProviderでFizzBuzzを取得可能な自然数型を生成する

F#

コンパイル時に生成できますね、というだけの話です。 準備: FSharp.TypeProviders.StarterPackのインストール NuGetからインストールしてください。 注意点としては、ファイルの定義順序がそのままだとコンパイルできない可能性があることでしょうか。 Prov…

Twitterで流れてきたListReaderコンピュテーション式の解説

F#

先日、Twitterで id:n7shi さんが面白いコードを投下していた。 コンピュテーション式のビルダーは1回しか書いたことがないので、簡単なものでも苦戦した。用途を限定してリストを順に読む例(モナドではない)。 https://t.co/Zfq0M9vm0n— 七誌 (@7shi) Jun…

F# API検索サービス"FSDN"を作りました

F#

公開から少し間が空きましたが、改めて周知ということで。 http://fsdn.azurewebsites.net/ このサービスは現在Azureで運用しています。 運用にあたり、株式会社オンザロード様にスポンサーについていただきました。 私がメンテナンスしていく限りはUNIX、Li…

Babelの勉強と称してmuscle-assertを作ってみる

私は型がないと死んでしまう(コンパイラと相談しないと考慮漏れが多発して死ぬ)ので、JS系を触る場合は主にTypeScriptなのですが、とはいえ昨今の事情的にBabelを食わず嫌いするのなぁ…と思ったのでライブラリとそれ用のpuluginを作ってみることにした。 …

Persimmon用アサーションライブラリMuscleAssertを作った

F#

正確には「作っていたライブラリをPersimmon.MuscleAssertにrenameした」です。 注意 この記事はあくまで私の考えでありpersimmon-projectsの総意であるわけではありません。 前提 PersimmonはF#用のテスティングフレームワークです https://github.com/pers…

diff-match-patchを F# に移植してみた

世の中にはdiff-match-patchと呼ばれる、Google製の便利な文字列diffライブラリが存在します。 そんなdiff-match-patchですが、C#版はコードは存在するもののnugetにpublishされていません。 また、コードは.NET Framework 3.5以上である必要があるため、諸…

java-object-diff を F# に移植

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

Microsoft MVP for Visual Studio and Development Technologies(F#)を受賞しました

気がついたらまたカテゴリが変わっていましたが、今年で4回目の受賞となります。 Visual Studio and Development Technologiesとカテゴリ名が長すぎて未だに覚えられません。 覚えられないのでF#と言い張っておきます。 仕事でF#を使わなくなって久しいです…

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

F#

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

テスティングフレームワークとSemantic Versioningでなんか考えた

タイトルが釣りっぽくなっていてすみません。 寝起きにぼーっと考えていたら疑問に思ったけど、チラシの裏がないのでここに投げておきます。 この記事は疑問を書いて投げっぱなしにするので解などはかかれていません Semantic Versioning Semantic Versionin…

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…

2015年簡易振り返り

書いておかないと忘れるけどもう時間がないので簡易版。 生活 F# MVPから.NET MVPになった MVPらしい活動をしていたかどうかは微妙なところだが、なんかやってはいた気がする 転職した 転職の際にScalaMatsuriの情報を使わせてもらったお礼にと思ってインタ…

お前も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)のちょっとしたアレコ…

最近使っているScalaのライブラリ

これは Scala Advent Calendar 2015(アドベンター版) の4日目です。 3日目は、xuweiさんの ScalaからScalaPBというsbt plugin使ってProtocol Bufferを使う方法についてのドキュメントを書いている でした。 Protocol Buffer使ってみようかな…。 言い訳フェー…

SmlSharpContribについて

これはML Advent Calendar 2015と関数プログラミングAdvent Calendar 2015の一日目の記事です。 えすえむえるしゃーぷって? SML# - SML#のダウンロード 関数プログラミング交流会で調査した感じだと、知っている人は増えつつあるがユーザはまだそんなにと…

"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で確…

Scala.jsに対応したscodec-msgpackをリリースしました

この記事は予約投稿です。 id:xuwei さんが ささっと作業してくださったのでリリースしました。 https://github.com/pocketberserker/scodec-msgpack/tree/v0.4.1 v0.4.0はプロジェクトの設定ミスにより空のjarが降って来るだけなのでスルーしてください…。 …

Elm の automaton を F# に移植した

F#

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

Elixir入門するついでにelixir-supervisordというライブラリを作った

だいたいのことはErlangでいいんじゃないかなと思いつつ、まー触ってみないことには何とも言えないよねというのもあり、今回重い腰をようやくあげた。 触り始めて一週間。 ついでにライブラリ作った https://hex.pm/packages/supervisord supervisordのXMLRP…

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で…