小编Sof*_*mur的帖子

Ocaml中的括号

我正在评估Ocaml顶级代码中一段非常简单的代码:

let p5 () = print_int 5;;
p5 ();;

print_string "*************************";;

let p4 = print_int 4;;
p4;; 
Run Code Online (Sandbox Code Playgroud)

它返回:

val p5 : unit -> unit = <fun>
#   5- : unit = ()
#   *************************- : unit = ()
#   4val p4 : unit = ()
#   - : unit = ()
Run Code Online (Sandbox Code Playgroud)

我的问题是

  1. 什么()意思let p5 () = print_int 5;;
  2. 做什么-()意味着# 5- : unit = ()什么?
  3. p4功能吗?
  4. 为什么一4开始就有 …

ocaml

5
推荐指数
2
解决办法
2004
查看次数

是否可以将一组递归函数拆分为OCaml中的2个文件?

我有一个非常长的文件,其中包含一组递归函数.递归是必要的,代码也是有效的.但我只想将文件拆分为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 (); 
  ...
Run Code Online (Sandbox Code Playgroud)

recursion ocaml makefile

5
推荐指数
1
解决办法
114
查看次数

如何调用js_of_ocaml生成的函数?

我是JavaScript新手,正在尝试使用js_of_ocaml

我首先写的很简单cubes.ml

let simple (a: int) =
  a + 1234
Run Code Online (Sandbox Code Playgroud)

然后编译它:

ocamlfind ocamlc -package js_of_ocaml -package js_of_ocaml.syntax \
          -syntax camlp4o -linkpkg -o cubes.byte cubes.ml
Run Code Online (Sandbox Code Playgroud)

然后生成JavaScript文件:

js_of_ocaml cubes.byte
Run Code Online (Sandbox Code Playgroud)

这是生成的cubes.js。请注意,我们在该文件中找不到1234名称或功能名称simple

我还有另一个JavaScript文件Home.js,我希望该函数callSimple调用在中生成的内容cubes.js。但是我不知道怎么写。有人可以帮忙吗?

(function () {
    ...
    function callSimple(a) {
        return ???;
    };
    ...
})();
Run Code Online (Sandbox Code Playgroud)

编辑1:

我尝试了@EdgarAroutiounian提出的解决方案:

(* cubes.ml *)
let () =
  Js.Unsafe.global##.jscode := (object%js
    val simple = Js.wrap_meth_callback
        (fun a -> a + 1234)
    val speak …
Run Code Online (Sandbox Code Playgroud)

javascript ocaml js-of-ocaml

5
推荐指数
1
解决办法
294
查看次数

搜索名称中包含关键字的存储库中的代码

github搜索中,以下字符串允许我搜索JavaScript包含Acode在用户的所有存储库中的代码NameOfUser:

user:NameOfUser language:JavaScript ACode
Run Code Online (Sandbox Code Playgroud)

现在,我想添加另一个条件:我只对包含ACode在名称所包含 的存储库中的代码感兴趣repokey.

有谁知道如何写请求?

github

5
推荐指数
1
解决办法
100
查看次数

Office加载项是否总是需要Internet访问才能工作?

让我们以Excel为例。在Excel 2016中,当我在中选择一个加载项时STORE,单击之后Trust It,是否将加载项的代码(.html.js文件)下载或安装在我的计算机上?

换句话说,是否MY ADD-INS在我的机器上已经安装了下面的加载项,这样我可以在没有Internet的情况下加载和运行它们(如果加载项不向Internet发送或从Internet接收特殊数据)?

在此处输入图片说明

我问这个问题,是因为我想知道基本加载项是否始终需要Internet访问才能正常工作。

ms-office office-js

5
推荐指数
1
解决办法
1586
查看次数

找不到有效的 Gruntfile

我已按照此链接尝试mean.js在 ubuntu 服务器上安装堆栈。

关于grunt,在/opt/mean,我做了

sudo npm install -g bower grunt-cli
sudo npm install grunt --save-dev
sudo npm install
Run Code Online (Sandbox Code Playgroud)

但是,grunt还是grunt jshint在文件夹里面给出

找不到有效的 Gruntfile。有关如何配置 grunt 的更多信息,请参阅入门指南: http ://gruntjs.com/getting-started 致命错误:无法找到 Gruntfile。

请注意,npm start可以正常工作,并且http://server_domain_or_IP:3000可以显示示例应用程序。

有谁知道如何修复 grunt 错误?

node.js gruntjs mean-stack

5
推荐指数
1
解决办法
1万
查看次数

在前端为 Google Sheets 插件捕获 onSelectionChange

在 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() };
}
Run Code Online (Sandbox Code Playgroud)

这是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) { …
Run Code Online (Sandbox Code Playgroud)

google-sheets google-apps-script

5
推荐指数
1
解决办法
125
查看次数

为 src 库文件分配命名空间

我有一个用 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>
Run Code Online (Sandbox Code Playgroud)

我还有一个类型声明文件,frontend/src/defines/analyzejs-v1.d.ts如下所示:

declare function f1(): string;
declare function f2(): string;
...
Run Code Online (Sandbox Code Playgroud)

结果,在网站的代码中,我可以直接调用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;
    ...
}
Run Code Online (Sandbox Code Playgroud)

在网站的代码中,我尝试使用v1.f1().

编译没有出现任何错误。但是,运行该网站并使用功能调用时,我在: …

javascript namespaces type-declaration typescript reactjs

5
推荐指数
1
解决办法
311
查看次数

为不同的组件加载不同的JS库文件

我有一个用 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>
Run Code Online (Sandbox Code Playgroud)

其中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.jsanalyzejs-v2.js根据组件(或 URL)。

那么有谁知道为不同组件加载不同JS库文件的常规方法吗?

script-tag hamlet reactjs webpack react-scripts

5
推荐指数
1
解决办法
763
查看次数

打开多个 VSCode 窗口时在 2 个 VSCode 窗口之间切换的快捷方式

我使用的是 Mac。

我打开了几个 VSCode 窗口。

我只想在 2 个(上次查看的)窗口之间切换。有谁知道这样做的键盘快捷键是什么?

我尝试了 command + `,但它一一浏览了所有打开的 VSCode 窗口。选项+选项卡也是如此。

我尝试了 control + w,它也会浏览所有打开的 VSCode 窗口,除非您使用向上和向下键进行选择。

有人可以帮忙吗?

keyboard-shortcuts visual-studio-code

5
推荐指数
1
解决办法
2453
查看次数