問題タブ [ocaml-core]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
6 に答える
16083 参照

ocaml - OCamlに中置関数合成演算子はありますか?

簡単な質問です。標準ライブラリ (または Jane Street の Core または Batteries) で定義されている OCaml に、Haskell の (.) 関数のような中置関数合成演算子があるかどうか疑問に思っています(f . g . h) x。あまり魅力的ではありませんf (g (h x)))

ありがとうございます。

0 投票する
1 に答える
1291 参照

ocaml - コア ライブラリを使用して ocaml でマップ タイプを定義する

OCaml 言語のコア ライブラリには、非常に便利な Map および Table モジュールが付属しています。組み込み型のマップを使用する場合、独自の型を定義する方法を知っています。

また、ポリモーフィック比較を使用してカスタム マップを定義する方法も知っています。

私が知らないのは、自分の型から自分の型への非ポリモーフィックな比較を使用してカスタム マップを定義する方法です。たとえば、私が持っているとします

Int.comparator3 番目の引数がコンパレータであることは理解していますが、内部に何を入れればよいかわかりませんInt.comparator_witness

0 投票する
2 に答える
649 参照

ocaml - Core の `Fn.const` を理解する

Jane Street の Core lib には次のような機能がありますFn.const

https://github.com/janestreet/core_kernel/blob/master/lib/fn.ml

val const : 'a -> 'b -> 'a
は、最初の引数を返すだけの関数を生成します

私は本当にそれを理解していません。

  1. この関数の目的は何ですか? どのようなシナリオで使用する必要がありますか?
  2. なぜ();最初に置くのですか?
  3. と書いてみませんlet const c = fun () -> cか?これにより、パラメーターとして受け取る関数が提供unitされ、常に initial が返されますc
  4. すると、パラメータとして取る関数になりlet f = const 5ます。弱いポリモーフィック パラメータを持つ関数を返す目的は何ですか?f'_a

psFnモジュール内のいくつかの関数はすべて();、関数を返す前に持っていることがわかり();ます。

0 投票する
2 に答える
347 参照

ocaml - Unix.create_process に相当する ocaml-core

次のコマンドをUnixライブラリから Jane Street のCore.Std.Unixライブラリに移植したいと考えています。

つまり、実行可能ファイルexecと引数argsがあり、現在のプロセスと同じ in/out/error チャネルを使用してプロセスを実行したいと考えています。

に近づくことはできますが、コアからこの関数によって返された を現在のプロセスで使用されるファイル記述子Core.Std.Unix.create_process ~exec:exec ~args:argsに接続する方法がわかりません。stdin,stdout,stderr

0 投票する
0 に答える
46 参照

ocaml - Core が空白文字のサブセットしか認識しないのはなぜですか?

Char.is_whitespace は、' ','\n','\t','\r' に対してのみ true を返すことが文書化されています。'\f' と '\v' (用紙送りと垂直タブ) を認識しないのはなぜですか? POSIX と C はどちらもこれらを空白と見なすため、Core がそうでないことは非常に驚くべきことです。

0 投票する
2 に答える
575 参照

ocaml - Core.Std が `close_in` 関数と `close_out` 関数を廃止するのはなぜですか?

I の場合、関数open Core.Stdを使用して an を閉じようとするとエラーが発生します。これは、Core が の型シグネチャを変更して非推奨のエラー メッセージを表示するためです。close_outout_channelclose_out

最初の質問: Core が deprecated なのにclose_outdeprecated ではないのはなぜclose_out_noerrですか?

2 番目の質問: Core は引き続きin_channels とout_channels を使用することを期待していますか? それとも、IO に別の API を使用することを好みますか?

3 番目の質問:私が見つけた唯一の他の IO API は、readまたはモジュールwrite内の関数Unixであり、ファイル ハンドルではなくファイル記述子で動作します。C では、ファイル記述子関数は syscall を直接発行しますが、受信FILE *する stdio.h からの関数はバッファリングされた IO を行います。これは Ocaml で、syscall を直接発行する Unix モジュールの関数と、in_channelバッファout_channelリングされた IO を操作して実行する関数に似ていますか?

0 投票する
1 に答える
44 参照

ocaml - OCaml - Core で Sys.big_endian の値が見つかりません

を開くと がモジュールval big_endian : boolから削除されていることに気付きました。SysCore.Std

同様の値はどこで見つけることができますか?