[英]What's the difference between the single quote 'a and a' in OCaml?
[英]What's the difference between include, require and open in OCaml?
例如,
包括: include Ppx_core
打開: open Core.Std
要求: #require "compiler-libs.common"
並使用: #use "topfind"
模塊定義中的include Module.Name
語句將包含來自名為Module.Name
的模塊的所有定義。 這些定義將大致包含在復制粘貼時。 如果include Module.Name
出現在模塊類型定義(又名簽名定義)內部,則Module.Name
應該是有效的(編譯器已知的)模塊類型。 它將包括模塊類型的定義(不包括任何類型共享約束)。
出現在模塊實現和模塊簽名中的open Module.Name
語句將允許您在不使用完全限定名稱的情況下Module.Name
定義(值、類型、子模塊),即使用不帶Module.Name
短名稱Module.Name
前綴。
#require
語句根本不是語句,也不是 OCaml 語法的一部分。 它是 OCaml 頂層的特殊指令 - 交互式循環。 同 ipython 一樣有自己的指令。 require
指令將加載指定的包及其所有依賴項。 此外,該指令不是標准 OCaml 頂級發行版的一部分,而是由作為 ocamlfind 工具包一部分的topfind
腳本添加的。 #use
指令用於加載和評估腳本。 例如, #use "topfind"
將從 OCaml 標准庫文件夾加載和評估topfind
腳本。 此腳本將注冊require
指令。 還有#load
和#load_rec
指令,它們在更細粒度的級別上工作,而不是包——這些指令旨在加載庫。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.