2010-11-18 6 views
4

新しいライブラリは新しいライブラリを使用できる場合にのみ興味深いです。ですから、私はF#で.netで使用できる新しいライブラリを知りたいです。 F#がML/OCamlと互換性がある場合、OcamlライブラリはF#に移植されるか、移植可能です。私は、信号処理/音声認識、ロジックプログラミング/ .NETのSLD解決ライブラリで面白いです。新しいツールセット:オリジナルのF#モジュールまたはOCamlから移植

+0

"Jon Harropを呼び出す..." :) – Benjol

答えて

11

F#に移植されたML/OCamlライブラリが多数あるとは思いません。 F#プログラミングスタイルは、人々がML/OCamlで使うものとはかなり異なったものになっているので、ML/OCamlライブラリはF#プログラマーにとっては少し外国人だと感じるでしょう。

ただし、F#とOCamlでクロスコンパイルするプロジェクトがあります。 F#コンパイラ自体は以前と同じように使用されていましたが、私はMSRのSlayerが別の例であると信じています。しかし、あなたが言及した2つのドメインについては、私はF#ライブラリについて認識していません。あなたはF#でOCamlのコードをコンパイルするに興味があるなら

、そしてここであなたに役立つかもしれないいくつかあります:F#に移植OCamlのコードは、F#はサポートしていないということです

  • 大きな言語の制限ファンクター。
  • いくつかの標準的なOCamlのライブラリーは、(F# PowerPackに見出すことができる)FSharp.PowerPack.Compatibility.dllアセンブリ
+1

OCAML用のライブラリの多くは、Cプロジェクト用のラッパーです。私はそのパラダイムがF#/ .NETにどのように適合しているのかよくわかりません。どんな洞察? (私はまた、OCAMLからのF#の迂回に関するあなたの要点に加えたいと思います; F#には、OCAMLプロジェクトでかなり頻繁に使用されるファンクタや多相変種は含まれません)。 – nlucaroni

11

F#は、このようなSetMapコレクションとしてのOCamlからいくつかのポートを含んで実装されています。 Chris Okasaki's excellent monographの純粋に機能的なデータ構造のように、他の具体的なのデータ構造を容易に移植することができます。私はOCamlとF#の左ヒープhereに基づいてヒープソートを記述しました。 F#hereのいくつかの純粋に機能的なヒープのより完全なレビューを公開しました。しかし、F#は、岡崎がそのように熟練した高次モジュールシステムを欠いているため、抽象的なデータ構造(例えば、待ち行列に抽象化された可算リスト)を表現することができないようである。 OCamlとF#でBurrows-Wheeler transformのような翻訳をいくつか投稿しました。 OCamlにはocamlgraphのようなすばらしいライブラリがたくさんありますが、F#には高次モジュール、多型、マクロなどのコア言語機能がないため、直接翻訳するのが難しい場合もあります。

マイクロソフトは、もちろん、最初のF#採用者であった(Halo 3とBing AdCenterで使用されている)TrueSkill ranking systemとそのサードパーティドライバ検証ツールをOCamlからF#に移行しました。

Coherent PDF PDF文書を操作するためのコマンドラインツールは、OCamlとF#の両方でクロスコンパイルされる数少ないコードベースの1つです。

Smoke Vector Graphicsエンジンと私たちの(終了した)PresentaアプリケーションをOCamlからF#に翻訳しました。現在はF# for Visualizationとして販売されています。翻訳は確かに言語間の類似性によって容易になりましたが、それにはまだ数日かかってしまい、クロスコンパイルする方法はありません。

F#は主に商用言語であるため、OCamlの商用ユーザはF#に移行しているため、OCamlからF#に変換されるコードのほとんどは商用です。オープンソースのF#は、OSSとしてのF#自体の最近のリリースに続いて登場するかもしれませんが、まだ早い時期です。

具体的なトピック(信号処理など)については、Visual F# 2010 for Technical Computingに記載されているFFTWへのバインディングを超えて推奨するものがわかりません。

1

進化的アルゴリズム開発をサポートするライブラリが1つ見つかりました。

F#人工知能ライブラリ - 差動進化の実装:そこに進化的アルゴリズムについて http://fsai.codeplex.com/documentation?version=11

http://en.wikipedia.org/wiki/Evolutionary_algorithm

はまた、上のSLD解決エンジン「を持っていることは素晴らしい」についての短い議論がありますF#(およびC#に移植されたプロローグへのリンク) http://cs.hubfs.net/forums/thread/6676.aspx

これはすべてです...

関連する問題