小编Nic*_*ber的帖子

加载OCaml模块不在当前目录中

我正在写一个大型的OCaml项目.我写了一个foo.ml完美的文件.在目录的子目录中foo.ml,有一个文件bar.ml.

bar.ml引用代码foo.ml,所以它的开头是:

open Foo
Run Code Online (Sandbox Code Playgroud)

这在编译时给了我一个错误:

Unbound module Foo.
Run Code Online (Sandbox Code Playgroud)

如何在不改变位置的情况下解决这个问题foo.ml

ocaml

3
推荐指数
1
解决办法
802
查看次数

如何在扩展模块中包含签名?

假设我们想要扩展现有的模块List.

我们通常只是include想要扩展的模块,然后将新方法添加到其结构中:

# module List = struct
    include List
    let addOne x = x + 1
  end;;
Run Code Online (Sandbox Code Playgroud)

这给了我们签名:

module List :
  sig
    val length : 'a list -> int
    val compare_lengths : 'a list -> 'b list -> int
    val compare_length_with : 'a list -> int -> int
    :
    val addOne : int -> int
  end
Run Code Online (Sandbox Code Playgroud)

现在,如果我想明确扩展模块的签名,我会尝试做类似的事情:

# module List : sig
    val addOne : int -> int
  end = struct
    include List
    let …
Run Code Online (Sandbox Code Playgroud)

ocaml

2
推荐指数
1
解决办法
98
查看次数

有没有办法使媒体打印CSS成为正常视图?

我开发了一个网站,其中包含一堆印刷媒体查询,以便在打印页面时对齐内容。当您在网络浏览器上进入打印模式时,查询效果很好。但我想@media print在常规网页上应用/删除这些查询,而不必进入打印模式。(通过单击按钮)有什么方法可以实现这一点吗?

html javascript css printing

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

从最大堆中删除节点 A[i]

CLRS 练习:6.5-8

该操作从堆中HEAP-DELETE(A,i)删除节点中的项目。给出一个针对 n 元素最大堆及时运行的实现。iAHEAP-DELETEO(lg n)

在此输入图像描述

我想知道算法对于输入A[10]={84,22,19,21,3,10,6,5,20}(索引从1开始)和A[6]=10被删除是否错误。用替换最后一个节点A[6]将导致违反堆属性,忽略父值。

我为此编写了一个算法,想知道它是否正确或者我哪里出错了?

HEAP-DELETE(A,i)
  A[i]=A[A.heapsize]
  A.heapsize-=1
  while i>1 and A[parent(i)]<A[i]
    swap A[i] with A[parent(i)]
    i=parent(i);
Run Code Online (Sandbox Code Playgroud)

algorithm clrs max-heap

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

标签 统计

ocaml ×2

algorithm ×1

clrs ×1

css ×1

html ×1

javascript ×1

max-heap ×1

printing ×1