に let rec (l:int list) f int list =
match l with
| [] -> []
| hd::tl -> 2+tl
パターンマッチング私が知りたいのは、私がこれを行うとき、私はエラーを取得しておくので、tlが第二ではない場合、最初の要素、その後tlは、第二の要素であるhdとき私は
私はこのプログラムを持っている: open Core.Std
open Async.Std
let() =
printf "a"
はでそれをビルドします。corebuild -pkg async,core a.native をこのプログラムは、 "A" を印刷することはできませんが、私はこのようにそれを変更すると、それは以下となります。 open Async.Std
open
私は絶対OCaml初心者です。私は文字を20回繰り返す関数を作りたいと思っています。 これは機能ですが、エラーのために機能しません。 let string20 s =
let n = 20 in
s^string20 s (n - 1);;
string20 "u";;
私はこの # string20 "u"
- : string = "uuuuuuuuuuuuuuu
配列と文字列のインデックスは、なぜ微妙に異なる構文を使用するのですか? など。 let _: int = [|1;2;3|].(0)
let _: char = "123".[0]
I(およびその他)は、これが奇妙で混乱していると判断します。 OCamlのアドホック多型/関数のオーバーロードとインデックスオペレータが現在のOCamlの関数の形として考えられ、このように対象とされて見送る:OC
PPTの拡張機能などを使用して、機能の更新構文{ record with key = value }をネストされたレコードで使用する方法はありますか? たとえば、次の例のプログラムでは、「内側の」ターゲットを実際にターゲットにしたいとき、最も外側のレコードのみを機能的に更新しています。 type outer = {
a : float;
b : inner
}
and in
"実装する必要のある新しいモジュール"を作成せずに、mli内のモジュールをエイリアスすることは可能ですか? この例はかなり工夫されていますが、たとえば、次のソースファイルint_wrapper.mlがあるとします。 type t = Int64.t
let zero = Int64.of_string "0"
インターフェイスファイルを定義しますが、Int64.tはかなり長いので、省略した