F # includes some ports from OCaml, such as the Set and Map collections. Other specific data structures can be easily ported, such as purely functional data structures from Chris Okasaki, an excellent monograph . I described a heap type based on its left heap here in OCaml and F #. I published a more detailed review of several purely functional heaps in F # here . However, F # does not seem to be able to express abstract data structures (e.g. catenable lists abstracted over queues) very well, because it lacks a higher order module system that Okasaki uses so skillfully. I also posted some other translations, such as converting Burrows-Wheeler to OCaml and F #. OCaml has many amazing libraries, such as ocamlgraph , but it is often difficult or impossible to translate directly, because F # lacks main language features such as higher order modules, polymorphic options, macros, etc.
Microsoft was the first adopter of F #, of course, moving its TrueSkill Coherent PDF ranking system to manage PDF documents is one of the few base codes compiled in both OCaml and F #.
We've converted the Smoke Vector Graphics engine and our (discontinued) Presenta application from OCaml to F #, and now it is sold as F # for rendering . Of course, the translation was simplified due to the similarities between the languages, but it still took several days, and we will not be able to cross-compile.
Most of the code translated from OCaml to F # is commercial, because F # is primarily a commercial language, and therefore, commercial users of OCaml are ported to F #. The open source F # code may begin to be removed after the recent version of F # itself as OSS, but it is too early.
As for your specific topics (for example, signal processing), I'm not sure what to recommend after binding to FFTW, which I described in Visual F # 2010 for technical computing .
source share