我想知道是否可以逐步调试/执行Ocaml程序,例如在Visual Studio中调试C++程序.换句话说,我想逐行运行Ocaml程序,如果我们可以"观察"某些变量的值,那也很好.
顺便说一句,我使用Emacs作为编辑器.
有人可以帮忙吗?非常感谢你
编辑-1:正如sepp2k建议的那样,我试图在Emacs下运行camldebug.我在开始时遇到问题:网页提到"Caml调试器是在命令下在Emacs下启动的M-x camldebug,参数是progname要调试的可执行文件的名称." 其实我只有3个选择:
M-x camldebug
M-x camldebug-mode
M-x camldebug-step
Run Code Online (Sandbox Code Playgroud)
编辑-2:当我输入时M-x camldebug,输入,它显示Symbol's value as variable is void: caml-mode-map哪些不允许我输入可执行文件.
有人可以帮忙吗?谢谢!
我用Emacs用法语编辑文档,ispell默认情况下会出现英文字典.当我尝试ispell-change-dictionary,它提出francais-tex,francais7并francais在列表中.但在选择任何人之后ispell-word,它会告诉我Error: The file "/usr/lib/aspell/francais" can not be opened for reading.然后我检查文件夹/usr/lib/aspell,确实没有"法文"文件.
那么有谁能告诉我在哪里可以找到这些法语词典并将它们放在文件夹中?
PS:我正在使用ubuntu ......
我想定义一个函数如下:
let f (a: int) (b: int) (c: int) (d: int): int =
...
Run Code Online (Sandbox Code Playgroud)
是否可以缩短签名而不使其成为元组?因为我仍然希望f有4个参数.
非常感谢你.
编辑1:我认为重复int4次是没用的,并且想象出let f (a, b, c, d: int): int目前实际上不允许的东西.
我已经定义了一些类型:
type box = Box of int
type table = Table of int
type compare_result = Lt | Eq | Gt
Run Code Online (Sandbox Code Playgroud)
似乎在OCaml中,我们不能定义具有相同名称但不同类型的参数的2个函数:
let compare (a: box) (b: box): compare_result = (...)
let compare (a: table) (b: table): compare_result = (...)
let res_box = compare (Box 1) (Box 2) in (* which is supposed to call the first funciton *)
let res_table = compare (Table 1) (Table 2) in (* which is supposed to call the second function *)
Run Code Online (Sandbox Code Playgroud)
那么有谁能告诉我OCaml的替代方案是什么?我们必须以不同的方式命名这两个函数吗?
在一个工作簿(从别人),我需要分析,他们用一个公式来构造字符串列表:04-09-01,04-09-02,04-09-03等,这些都general为格式.在我的部分代码中,我需要将这些值复制到其他地方.但是,因为这些值是相当特殊的,它们会被自动视为Date(而他们显然不是日期用户),并转化为09/04/2001,09/04/2002,09/04/2003等等.因此,这些值完全改变,以及基于这些粘贴值计算导致错误.
这是一个测试代码:
function test () {
Excel.run(function (ctx) {
var r0 = ctx.workbook.worksheets.getItem("Sheet1").getRange("A2:A10");
var r1 = ctx.workbook.worksheets.getItem("Sheet1").getRange("F2:F10");
r0.load(["values"]);
return ctx.sync()
.then(function () { console.log(r0.values.toString()); r1.values = r0.values; })
.then(ctx.sync)
.then(function () { r1.load(["values"]); })
.then(ctx.sync)
.then(function () { console.log(r1.values.toString()); })
});
}
Run Code Online (Sandbox Code Playgroud)
控制台中的结果显示值已完全更改:
在Excel中,它显示:
请注意,Excel本身并不会系统地将这些值转换为日期.例如,如果我们仅值复制04-09-01到另一个单元格.Excel确实会发出警告并建议将其转换为日期,但用户可以忽略此警告并保持04-09-01原样:
所以我的问题是,是否有一种方法或解决方法可以在JavaScript API中禁用此自动转换,以便我们可以忠实地复制值?
编辑1:
我试图用来numberFormat保持范围的初始格式.首先,我将格式A2:A0如下所示General.
然后,我运行以下代码:
function test () { …Run Code Online (Sandbox Code Playgroud) 在我的服务器中,nginx -v返回nginx version: nginx/1.4.6 (Ubuntu),它已经很老了,所以我决定将它更新到最新的稳定版本.
然后,我按照这个答案:
sudo apt-get update
sudo apt-get install nginx
Run Code Online (Sandbox Code Playgroud)
它给:
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
nginx-common nginx-core
Suggested packages:
fcgiwrap nginx-doc
The following packages will be upgraded:
nginx nginx-common nginx-core
3 upgraded, 0 newly installed, 0 to remove and 311 not upgraded.
Need to get 349 kB of archives.
After this operation, 3,072 B of additional disk …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用该选项发布测试附加组件Private,因为此附加组件中没有任何新内容,如果我发布它,Google将不会接受该附加组件Public.
该加载项包含侧边栏,自定义菜单和自定义功能.它在Google Sheet上运行良好.
在Chrome网上应用店,我加2个Gmail的到Edit your tester accounts:下Your developer account.我还用这两个gmails创建了一个google组.
通过关注此主题,我做了Publish ==> Deploy as Sheets web add-on...,然后在Chrome网上应用店中上传了不同的图标和图片,支付了5美元,将大部分框留空,然后使用该选项发布,Private并选择了创建的Google群组.
但是,当我用这两封邮件中的任何一封打开新的Google表格时,我找不到该插件Add-ons.通过Add-ons ==> Get add-ons...,我也找不到附加组件.
那么有谁知道这个附加组件应该出现在哪里?是因为Google正在审核此附加组件尚未提供此附加组件.
看到这样一个基本的出版物并不清楚,我感到非常惊讶.是因为很少有人发布附加组件Private?
add-on google-sheets google-apps-script chrome-web-store google-apps-script-addon
我有一个funfun历史悠久的GitHub存储库。我有另一个GitHub存储库TBD。
现在,我想将文件夹移动到该文件夹funfun下TBD,然后从现在开始,我将仅在存储库上工作TBD。我希望funfun保留提交历史。
我遵循此解决方案。结果如下:
MBP:TBD$ ls
OCaml README.md
MBP:TBD$ git remote add funfun ../funfun
MBP:TBD$ git fetch funfun --tags
warning: no common commits
remote: Counting objects: 11874, done.
remote: Compressing objects: 100% (4286/4286), done.
remote: Total 11874 (delta 9020), reused 9813 (delta 7494)
Receiving objects: 100% (11874/11874), 21.98 MiB | 20.68 MiB/s, done.
Resolving deltas: 100% (9020/9020), done.
From ../funfun
* [new branch] master -> funfun/master
MBP:TBD$ …Run Code Online (Sandbox Code Playgroud) 我们正在使用Docusaurus V2创建一个网站。
在Docusaurus V1中,有一个scripts设置siteConfig.js可以定制html的头部内容。但是,我在Docusaurus V2中找不到相应的设置。
根据https://docusaurus.io/blog/2018/09/11/Towards-Docusaurus-2#layout,似乎可以自定义<head>V2中的html 部分。
布局
Docusaurus的当前状态是它负责整个布局和样式,无意中使用户很难根据自己的意愿自定义网站的外观。
对于Docusaurus 2,布局和样式应由用户控制。Docusaurus将处理内容的生成,路由,翻译和版本控制。受create-react-app和VuePress的启发,Docusaurus仍将提供默认主题,用户可以从中弹出该主题,以进行进一步的布局和样式自定义。这意味着用户甚至有可能通过使用React Helmet来更改HTML元数据。基于社区的主题也很有可能。大多数静态站点生成器都采用这种允许用户负责布局和样式的方法。
我试图用react-helmet的src/pages/index.js,用下面的代码:
function Home() {
const context = useDocusaurusContext();
const { siteConfig = {} } = context;
return (
<Layout
title={`Hello from ${siteConfig.title}`}
description="Description will go into a meta tag in <head />">
<Helmet>
<script src="https://appsforoffice.microsoft.com/lib/1/hosted/office.js"></script>
</Helmet>
</Layout>
);
}
Run Code Online (Sandbox Code Playgroud)
}
但是脚本https://appsforoffice.microsoft.com/lib/1/hosted/office.js没有出现在里面<head></head>
有没有人遇到过类似的问题,有人可以提供帮助吗?
我已经在Github上建立了一个项目(使用html + css + javascript),为期半年。它已经在一个私有存储库中,只有一个分支。
现在,我想将此存储库部分公开,例如
用户可以使用该issues功能提出问题或提出要求,我可以答复他们,我们可以进行讨论。
实际上,用户不需要查看代码。但是正如我们在Github上一样,我可能想将一小部分文件公开
我不想丢失提交历史记录。
谁能告诉我应该遵循的步骤(理想情况下是什么命令)?我是否必须重新组织我的文件夹,例如,创建一个公用文件夹和一个私有文件夹(但愿不是)?
ocaml ×3
emacs ×2
github ×2
add-on ×1
debugging ×1
dictionary ×1
docusaurus ×1
git ×1
ispell ×1
javascript ×1
ms-office ×1
nginx ×1
office-js ×1
overloading ×1
react-helmet ×1
repository ×1
ubuntu ×1