私はこれを解決する必要があります。関数を記述します( 'a listl = Empty |' a listl * 'aのリスト)。 私はリストなしで試合をしたことはありません。 matchを整数として使用するのは非常に混乱します。 type 'a listl = Empty | Cons of 'a listl * 'a
var: int -> (int -> 'a) ->'a listl
OCamlで座標 "クラス"(オブジェクトリテラルを返すファクトリ関数を使用して実装されています)を持ち、可視性を制限する方法を見つけようとしています。それはで定義されたモジュールに、そのオブジェクトのメソッド。 ここでは、ソースファイルが (* coordinate.ml *)
type coordinate = < get_x : int; get_y : int >
let creat
私は最初intは任意のタグであるタイプ type lazy_node_t = LazyNode of int * lazy_node_t Lazy.t list;;
のノードとの(有向)グラフがあると、リストはリストであります現在のノードからアクセス可能な遅延ノード。 これをグラフのtype node_t = Node of int * node_t list,に変更する方法はありますか。変更
Andrew AppelのTiger言語(ocaml)の現在の私の現在のlexerとparserです。 私は現在、相互再帰関数をサポートしようとしているが、次のパーサコードは動作しません。 decs :
| l = list(dec) { l }
dec :
| t = nonempty_list(loc(tydec)) { S.TypeDec t }
| v =
OCaml REPLは、任意の式の値とタイプを表示します。例えば、評価: let rec map f = function
| [] -> []
| x::l -> f x :: map f l;;
は与える: val map : ('a -> 'b) -> 'a list -> 'b list = <fun>
これは言語を教えるためのunvaluableです。 私はR
要素kから始まる不対要素(再帰を伴う)でma lazylistを埋めようとしています。たとえば、K = 2、リストは[2,3,5,7,9,...]はコードです: let lgen =
let rec gen k = LCons(k, fun() -> gen k (k + 2))
in gen 1;;
しかし、私は確認することができますどのように要素のk対になっていないです
2つの変更可能なリストを入力として受け取り、出力として2番目のリストに最初のリストを逆順に追加する関数を記述する必要があります。型定義は、次のとおりです type 'a mylist = 'a listcell ref
and 'a listcell = Nil | Cons of 'a * ('a mylist)
私は定期的にリストを反転するかどうかは承知していますが、破壊的に最初