5

OCaml REPL 显示任何表达式的值和类型。例如,评估:

let rec map f = function
    | [] -> []
    | x::l -> f x :: map f l;;

给出:

val map : ('a -> 'b) -> 'a list -> 'b list = <fun>

这对于教授语言是没有价值的。

我正在考虑切换到 Reason,但您将如何获得相同的信息?

let rec map = (f) =>
  fun
  | [] => []
  | [x, ...l] => [f(x), ...map(f, l)];

Try Reason不显示任何类型,我不确定是否存在 REPL for Reason。

4

1 回答 1

4

rtopreason-cli是一个顶级(OCaml-lingo 中的 REPL)随utop. 它会像这样打印类型:

let map: (('a) => 'b, list('a)) => list('b) = <fun>;

在 VSCode 中,merlin 还会在每个绑定上方显示的“CodeLens”中为您提供 let 绑定的类型。

在此处输入图像描述

于 2017-11-22T15:48:02.623 回答