4

我知道像 Haskell 这样的语言是静态类型的并且具有类型推断。但是是否存在具有全局类型推断的非函数式语言,相当于具有类型推断和结构类型的 C 语言。

4

3 回答 3

1

OCaml 不再是唯一的竞争者。近年来出现了许多结构类型的命令式语言:

  • F#OCaml一样,是一种多范式语言,支持复杂的模式匹配以及命令式和函数式编程。作为 OCaml 的派生语言,这两种语言实际上非常相似,除非存在细微的功能差异,否则它们实际上是源代码兼容的。主要的 [dis?] 优点是它在 .NET 上运行。
  • Go是最初的 Unix / Plan 9 / Inferno 团队自他们进入 Google 以来的挚爱,基于他们在这些系统的编译器上数十年的工作。Go 支持结构多态性,因为对象组合是它的主要子类型机制,并且方法接口不需要显式实现。
  • Haxe是一种 ActionScript 衍生产品,可编译到各种令人印象深刻的平台,包括 C++ (!)。它支持完全结构化的类型和枚举(相当于 OCaml 联合)以及 C# 样式的对象层次结构,并拥有一个复杂的宏系统。
于 2013-04-04T22:29:34.263 回答
1

OCaml是我所知道的唯一一个可以是命令式/面向对象的,它是静态类型的、垃圾收集的并支持全局类型推断和结构类型,尽管它本质上是一种函数式语言。

Scala 不是像 OCaml 这样的函数式语言,而是一种支持结构类型的命令式/面向对象的语言,但没有您正在寻找的类型推断。不过,它仍然支持函数式构造。

如果“非功能性”是指一种根本不支持函数式编程的语言,那么我认为没有。

于 2012-10-27T06:50:45.527 回答
0

还有 Crystal,但它处于 pre-alpha 阶段:

https://github.com/manastech/水晶

于 2013-06-26T16:29:09.820 回答