小编Ant*_*ine的帖子

Ctypes和指向字符串数组的指针

我有一个带有以下签名的C函数:

void init(int* argc, char** argv[]);
Run Code Online (Sandbox Code Playgroud)

我想使用Ctypes从我的OCaml代码中调用此函数,但我无法找到传递Sys.argv给它的正确方法.

ocaml

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

我应该为Scalaz的遍历功能导入什么

在我阅读有关Scalaz遍历功能的每个示例中,完成了以下导入:

import scalaz._
import Scalaz._
Run Code Online (Sandbox Code Playgroud)

看来我不能使用traverseU,直到我import Scalaz._.

Scalaz对象如何注入traverseU我的集合?我完全迷失在参考文档中.

如果我只想要traversetraverseU方法,我应该导入什么?

scala scalaz

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

如何使用ocamlbuild将-S标志传递给ocamlopt?

-S在使用ocamlbuild和corebuild命令构建时,我想将标志传递给ocamlopt.

我知道做ocamlbuild -cflag -S ...不会起作用,因为-Sflag仅存在于ocamlopt而不是ocamlc.

如何使用_tags文件执行此操作?

ocaml ocamlbuild

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

OCaml的类型A。at`语法

我刚刚在OCaml的有关GADT的文档中遇到了以下代码片段:

let rec eval : type a. a term -> a = function
  | Int n -> n
  | Add -> (fun x y -> x + y)
  | App (f, x) -> (eval f) (eval x)
Run Code Online (Sandbox Code Playgroud)

一旦在utop中进行了评估,它就具有以下签名:

val eval : 'a term -> 'a = <fun>
Run Code Online (Sandbox Code Playgroud)

我还注意到,当替换type a. a term -> a'a term -> 'a或仅删除签名时,该函数不再编译。

...
| Add -> (fun x y -> x + y)
...
Error: This pattern matches values of …
Run Code Online (Sandbox Code Playgroud)

syntax ocaml gadt locally-abstract-type

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

你如何在Swift中复制对象?

我有以下课程:

class Client {
  let name: String
  let age: Int

  init(name: String, age: Int) {
    self.name = name
    self.age = age
  }
}

let wrongClient = Client(name: "John", age: 9)
Run Code Online (Sandbox Code Playgroud)

如何创建wrongClient适合年龄的新版本?

我想要以下内容:

let rightClient = Client(wrongClient, age: 42)
Run Code Online (Sandbox Code Playgroud)

例如,OCaml允许开发人员执行以下操作:

type client = {
  name : string;
  age : int;
}

let wrong_client = {name = "John"; age = 25}
let right_client = {wrong_client with age = 42}
Run Code Online (Sandbox Code Playgroud)

或者在斯卡拉:

case class Client(name: String, age: Int)

val wrongClient = Client(name: …
Run Code Online (Sandbox Code Playgroud)

copy swift

5
推荐指数
3
解决办法
5296
查看次数

什么是处理Racket故障的惯用方法?

我习惯于OCaml,我非常依赖于result类型,以及一个monadic接口来处理我的应用程序中的故障.OCaml中存在异常但我很少使用它们,除了解决缺少return关键字的问题.

Racket(特别是打字的球拍)有这样的趋势吗?在Racket应用程序中处理和传播故障的惯用方法是什么?

racket

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

如何防止vim替代移动光标

我工作的公司对源文件使用特殊的标头,其中包含上次修改的日期。

我编写了一个 vim 脚本,它在每次写入缓冲区时自动更新此日期。

我正在使用搜索/替换功能来实现这一目的。

现在的问题是,替换确实将光标移动到文件的开头,这非常烦人,因为在每次写入缓冲区时,用户都必须手动跳回之前的编辑位置。

有谁知道一种方法可以防止 vim 在更新日期时跳转,或者至少让它跳回之前的位置?

vim

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

为什么int32s/int64s比int更慢?

我刚刚在Int32模块的参考文档中读到了这个:

性能注意:int32类型的值比int类型的值占用更多的内存空间,int32上的算术运算通常比int上的算术运算慢.仅当应用程序需要精确的32位算术时才使用int32.

为什么int32s通常比int更慢?是因为它们是盒装还是什么?

ocaml

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

在Scala中复制对象的简明方法

OCaml公开了一种简洁的语法,用于复制具有大量字段的记录.

type t = {
  x : int;
  y : int;
  z : int;
}

let _ =
  let v = {x = 1; y = 2; z = 3} in
  {v with z = 42}
Run Code Online (Sandbox Code Playgroud)

Scala的案例类是否有类似的语法?

ocaml scala

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

用C#组合两个列表

在OCaml中,有一个函数,它接受两个相同大小的列表并返回一个元组列表:

val combine : 'a list -> 'b list -> ('a * 'b) list
Run Code Online (Sandbox Code Playgroud)

C#中有类似的东西吗?

我对输出的类型没有强烈的要求.它可以是元组列表,也可以是字典.

c#

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

js_of_ocaml dom类型前面#字符的含义

以下签名中"#"的含义是什么?

val insertBefore : #node Js.t -> #node Js.t -> #node Js.t Js.opt -> unit
Run Code Online (Sandbox Code Playgroud)

ocaml js-of-ocaml

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