私はOCamlでのいくつかのF#コードを変換していると私は、例えば、このパイプライン演算子<|
の用途の多くを見ると:変換F#のパイプライン演算子(<|, >>、<<)OCamlの
let printPeg expr =
printfn "%s" <| pegToString expr
<|
、彼らはF#でこの演算子を定義して使用することをわざわざなぜ私は思ったんだけど
# let (<|) a b = a b ;;
val (<|) : ('a -> 'b) -> 'a -> 'b = <fun>
彼らはこのような括弧に入れて避けることができるので、それだけで?:
:オペレータは、どうやら同じように定義されています10let printPeg expr =
Printf.printf "%s" (pegToString expr)
私が言うことができる限り、これは上のF#コードのOCamlへの変換でしょうか?
また、OcamlでF#の<<
と>>
演算子を実装するにはどうすればよいですか? F# sourceから直接
私はOCamlのオープンコードが大量であること、F#に翻訳しやすいこと、Visual Studioを使用できること、そしてここでサポートすることにより、OCamlからF#への翻訳に多くの時間を費やしていますあなたはF#からOCamlに行くことで得るのですか? –
@GuyCoder:まず、私はWindowsではありません。私はLinuxで開発しています。私はMonoを使ってLinux上でF#を開発できると思うが、私はOCamlとそのツールチェーンに精通しており、Monoランタイムに依存したくないと思う。私はOCamlにF#がファンクタとファーストクラスのモジュールのようにないという特徴をいくつか持っています。はい、私は、OCamlからF#へ行くことに関する多くの情報があることに気付きましたが、それほど多くはありません。我々はある種の互換性ライブラリ/層が必要です。 – aneccodeal
[FSharp.PowerPack.Compatibility.dll](https://github.com/fsharp/powerpack/tree/master/src/FSharp.PowerPack.Compatibility)について知っていますか?それはすべてをカバーするものではありませんが、助けになります。私は現在、ファンクショナーとMLコードを翻訳しています。ファンクショナーを初めて初めて迎えてくれました。私は本当に[time travel]を愛していました(http://caml.inria.fr/pub/docs/manual-ocaml- 4.00/manual030.html)OCamlのデバッグ機能OCamlにはたくさんの機能があり、F#と同じくらい頻繁にお勧めします。 :) –