Ich spiele mit Grund, und ich wollte versuchen, das FFI für debug
zu tun, um zu lernen. Ich habe diesen CodeWie bindet man ein ganzes Modul als Funktion?
module Instance = {
type t;
external t : t = "" [@@bs.module];
};
module Debug = {
type t;
external createDebug : string => Instance.t = "debug" [@@bs.module];
};
und ich versuche es wie diese
open Debug;
let instance = Debug.createDebug "app";
instance "Hello World !!!";
zu verwenden, aber ich bekomme die folgenden Fehler
Error: This expression has type Debug.Instance.t
This is not a function; it cannot be applied.
Waren instance
binden, um nicht soll eine Funktion? Ich habe auch versucht mit
module Instance = {
type t;
external write : string => unit = "" [@@bs.send];
};
und
open Debug;
let instance = Debug.createDebug "app";
instance.write "Hello World !!!";
aber ich bekomme
Error: Unbound record field write
Was bin ich?
'Instance.t' ist eine abstrakte Art definiert im Modul' Instance'. Es ist keine Art von Modul. Wenn Sie wirklich Module als Werte behandeln wollen, müssen Sie erstklassige Module verwenden (http://caml.inria.fr/pub/docs/manual-ocaml-400/manual021.html#toc81). – camlspotter