我正在评估Ocaml顶级代码中一段非常简单的代码:
let p5 () = print_int 5;;
p5 ();;
print_string "*************************";;
let p4 = print_int 4;;
p4;; 
它返回:
val p5 : unit -> unit = <fun>
#   5- : unit = ()
#   *************************- : unit = ()
#   4val p4 : unit = ()
#   - : unit = ()
我的问题是
()意思let p5 () = print_int 5;;?-和()意味着#   5- : unit = ()什么?p4功能吗?4开始就有 …我有一个非常长的文件,其中包含一组递归函数.递归是必要的,代码也是有效的.但我只想将文件拆分为2个或更多文件以提高可读性.但我不知道我们如何分裂let rec ... and ...OCaml ......
有谁知道OCaml是否提供了这样做的任何机制(例如,指定接口或写入的方法makefile)?
非常长的文件可能如下所示:
let rec f1 () =
  ...
  f7 (); (* f7 is called only once by all the functions in the file *)
  f2 ();
  ...
and f2 () =
  ...
  f1 ();
...
and f7 () =
  ...
  f1 (); 
  ...
我是JavaScript新手,正在尝试使用js_of_ocaml。
我首先写的很简单cubes.ml:
let simple (a: int) =
  a + 1234
然后编译它:
ocamlfind ocamlc -package js_of_ocaml -package js_of_ocaml.syntax \
          -syntax camlp4o -linkpkg -o cubes.byte cubes.ml
然后生成JavaScript文件:
js_of_ocaml cubes.byte
这是生成的cubes.js。请注意,我们在该文件中找不到1234名称或功能名称simple。
我还有另一个JavaScript文件Home.js,我希望该函数callSimple调用在中生成的内容cubes.js。但是我不知道怎么写。有人可以帮忙吗?
(function () {
    ...
    function callSimple(a) {
        return ???;
    };
    ...
})();
编辑1:
我尝试了@EdgarAroutiounian提出的解决方案:
(* cubes.ml *)
let () =
  Js.Unsafe.global##.jscode := (object%js
    val simple = Js.wrap_meth_callback
        (fun a -> a + 1234)
    val speak …在github搜索中,以下字符串允许我搜索JavaScript包含Acode在用户的所有存储库中的代码NameOfUser:
user:NameOfUser language:JavaScript ACode
现在,我想添加另一个条件:我只对包含ACode在名称所包含 的存储库中的代码感兴趣repokey.
有谁知道如何写请求?
让我们以Excel为例。在Excel 2016中,当我在中选择一个加载项时STORE,单击之后Trust It,是否将加载项的代码(.html,.js文件)下载或安装在我的计算机上?
换句话说,是否MY ADD-INS在我的机器上已经安装了下面的加载项,这样我可以在没有Internet的情况下加载和运行它们(如果加载项不向Internet发送或从Internet接收特殊数据)?
我问这个问题,是因为我想知道基本加载项是否始终需要Internet访问才能正常工作。
我已按照此链接尝试mean.js在 ubuntu 服务器上安装堆栈。
关于grunt,在/opt/mean,我做了
sudo npm install -g bower grunt-cli
sudo npm install grunt --save-dev
sudo npm install
但是,grunt还是grunt jshint在文件夹里面给出
找不到有效的 Gruntfile。有关如何配置 grunt 的更多信息,请参阅入门指南: http ://gruntjs.com/getting-started 致命错误:无法找到 Gruntfile。
请注意,npm start可以正常工作,并且http://server_domain_or_IP:3000可以显示示例应用程序。
有谁知道如何修复 grunt 错误?
在 Google 表格中,我有一个由 backendcode.gs和 frontend两部分组成的附加组件index.html,其中 index.html 是单击菜单时显示的侧边栏。这是code.gs:
function onOpen() {
  SpreadsheetApp.getUi()
    .createMenu('My add-on')
    .addItem('Test', 'openSideBar')    
    .addToUi();
}
function onSelectionChange(e) {
  Logger.log("Selection changed ");     
}
function openSideBar() {
  var html = HtmlService.createHtmlOutputFromFile('Index');
  SpreadsheetApp.getUi().showSidebar(html);
}
function getCurrentSelection() {
  var currentCell = SpreadsheetApp.getCurrentCell();
  return { column: currentCell.getColumn(), row: currentCell.getRow() };
}
这是onSelectionChange的文档。在Logger.log("Selection changed")当选择的是变化的确叫。但是,当用户单击单元格并更改选择时,我需要在前端通知或进行更改。
这是index.html:
<!DOCTYPE html>
<html>
<head>
    <base target="_top">
</head>
<body>
    Test
    <input type="text" id="formula" />
    <script>
      function onSelectionChangeJs(e) { …我有一个用 ReactJS 制作的网站。analyzejs该网站调用另一种编程语言生成的库的函数。我只能调用这个库的函数;我无法修改这个库的太多内容。
到目前为止,我一直在使用该库的第一个版本:analyzejs-v1.js. 为了实现这一点,在frontend/public/index.html网站中,我有
<head>
  <script src="/lib/analyzejs-v1.js"></script>
  <!-- <script src="/lib/analyzejs-v2.js"></script> -->
</head>
<body>
  <div id="root"></div>
</body>
我还有一个类型声明文件,frontend/src/defines/analyzejs-v1.d.ts如下所示:
declare function f1(): string;
declare function f2(): string;
...
结果,在网站的代码中,我可以直接调用f1()使用analyzejs-v1.js。
现在,我想添加该库的另一个版本analyzejs-v2.js。在网站的某些部分,我想f1()调用analyzejs-v1.js; 在网站的某些部分,我想f1()调用analyzejs-v2.js. 所以我想我需要向这些不同的版本添加诸如v1和之类的命名空间v2以避免冲突。然后,我就可以打电话v1.f1()和v2.f2()。
我尝试修改frontend/src/defines/analyzejs-v1.d.ts如下:
declare namespace v1 {
    function f1(): string;
    function f2(): string;
    ...
}
在网站的代码中,我尝试使用v1.f1().
编译没有出现任何错误。但是,运行该网站并使用功能调用时,我在: …
我有一个用 ReactJS 制作的网站。在 中public/index.html,我有
<head>
  <script src="/lib/analyzejs-v1.js"></script>
  <script src="/lib/analyzejs-v2.js"></script>
</head>
<body>
  <div id="root"></div>
</body>
其中analyzejs-v1.js有 6Mo,并且analyzejs-v2.js有 3Mo;它们都是固定文件,我无法对其进行太多修改。
这两个文件不是模块;它们的功能已声明(例如,declare function f1(address: string): string;在 中src/defines/analyzejs-v1.d.ts)。analyzejs-v1.js因此,某些组件通过使用函数名称直接调用函数f1(...),无需任何命名空间、导入或导出。其余组件analyzejs-v2.js通过使用函数名称f2(...)直接调用函数,无需任何命名空间、导入或导出。
加载这两个js库文件需要时间。所以我正在寻找一种方法来加载analyzejs-v1.js或analyzejs-v2.js根据组件(或 URL)。
那么有谁知道为不同组件加载不同JS库文件的常规方法吗?
我使用的是 Mac。
我打开了几个 VSCode 窗口。
我只想在 2 个(上次查看的)窗口之间切换。有谁知道这样做的键盘快捷键是什么?
我尝试了 command + `,但它一一浏览了所有打开的 VSCode 窗口。选项+选项卡也是如此。
我尝试了 control + w,它也会浏览所有打开的 VSCode 窗口,除非您使用向上和向下键进行选择。
有人可以帮忙吗?
ocaml ×3
javascript ×2
reactjs ×2
github ×1
gruntjs ×1
hamlet ×1
js-of-ocaml ×1
makefile ×1
mean-stack ×1
ms-office ×1
namespaces ×1
node.js ×1
office-js ×1
recursion ×1
script-tag ×1
typescript ×1
webpack ×1