Programming languages 寻找满足这些要求的编程语言

Programming languages 寻找满足这些要求的编程语言,programming-languages,Programming Languages,寻找编程语言。必须具备以下品质(按字符特征长度升序排列): 汇编 名称空间 垃圾收集 省略OOP功能 固定类型数 可在Mac OS X上使用 一类函数 动态打字优先 闭包(词法范围) Can与C库(网络课程等)的接口 linux上的可用性优先,但不是必需的 -- 为了提供更多的上下文,我希望能够使用它为linux/BSD/Mac编写命令行实用程序,它可能使用也可能不使用现有的C库(如ncurses等) 澄清更新: 名称空间:当我可以创建一个名为string的新名称空间并在其中定义一个名为st

寻找编程语言。必须具备以下品质(按字符特征长度升序排列):

  • 汇编
  • 名称空间
  • 垃圾收集
  • 省略OOP功能
  • 固定类型数
  • 可在Mac OS X上使用
  • 一类函数
  • 动态打字优先
  • 闭包(词法范围)
  • Can与C库(网络课程等)的接口
  • linux上的可用性优先,但不是必需的
--

为了提供更多的上下文,我希望能够使用它为linux/BSD/Mac编写命令行实用程序,它可能使用也可能不使用现有的C库(如ncurses等)

澄清更新:

名称空间:当我可以创建一个名为
string
的新名称空间并在其中定义一个名为
strip
的函数时,我希望避免将我的函数命名为
strip

省略OOP特性:有特性的语言和我不使用特性的语言,与故意省略特性的语言之间肯定有区别。如果我想使用但不涉及OOP相关的任何东西,我就不能使用大多数标准库


固定类型数:为什么没有OOP的语言会给您创建自定义“类型”的选项?没有OOP的类型意味着什么?它可能只用于类型的组合,即Person=struct{Name,Age},而您可以使用散列或映射很好地实现这一点


首选动态类型:类型推断很好,我想……

我不确定名称空间是什么意思,但您不是在描述Scheme吗?

请检查(基于Scheme)

它有一个外国金融机构。我已经用它为SQLite和ODBC创建了FFI绑定,我发现FFI非常有用和方便

“名称空间”对我来说是模棱两可的。Racket有一个模块系统,它也有它所谓的名称空间,这是一流的顶级环境对象


它没有“固定数量的类型”。我一点也不理解这个要求。

好吧,我将尝试提出一些适合几乎每个要求的语言:

  • (静态类型)
    • 特别是GHC发行版-它是编译的(或可以发出LLVM代码)
    • 它使用类似于名称空间的模块
    • 它是垃圾收集的,不是OO语言
    • 我并不特别理解“固定数量的类型”,因为Haskell提供了类型,但您可以创建更多类型,Haskell支持和模式匹配
    • 它在所有Win/Mac/Linux上都可用
    • 它有一流的函数和闭包(毕竟是函数语言)
    • 它可以与C库接口

    • 它有一个字节码编译器,如果您使用的是Intel x86系列CPU,则有一个名为的本机编译器
    • 动态类型
    • 不是一种面向对象语言,它几乎是功能性的
    • 有8个基本类型和2个复合类型-如果你想要一个集合,你要建立一个列表或元组
    • 垃圾被收集了吗
    • 具有(不可变)闭包
    • 具有一流的功能
    • 支持Windows、Mac、Linux
    • 具有充当命名空间保护器的包
    • C绑定-和

一个简单的词定义了这个post-HUH?为什么,这个问题有什么错?Haskell(静态类型),特别是GHC发行版-它是编译的(或者可以发出LLVM代码),它使用类似于名称空间的模块,它是垃圾收集的,它不是一种OO语言,我并不特别理解“固定数量的类型”,因为Haskell给了你类型,但你可以创建更多类型,它在所有Win/Mac/Linux上都可用,它有一流的函数和闭包(毕竟是函数语言),它可以与C库接口。@Thymine我不确定他为什么需要证明自己。如果只是他喜欢的功能呢?这个问题显然已经足够详细了(还有一些)可以回答了。“没有OOP的类型意味着什么?”你肯定是在开玩笑。因为如果不是。。。(以防万一,有很多“类型理论”,有过多的类型系统和定义新类型的方法,其中大多数都从未听说过这种你称之为OOP的东西)我忘了添加一个要求,即它可以与C库接口,并且具有一定的可移植性(省略Windows)。。Scheme可以使用ncurses之类的东西并在Mac OS X上工作吗?如果可以,那么问题就变成了“哪个Scheme?”,我无法找到可用选项的良好比较。现在有没有一个事实上的标准方案编译器,它为大多数任务提供了一个有用的标准库?@StevenDegutis看一看,它声称可以做你想做的事情(我还没有试过)。另外请注意,我发现在这个问题上你得到了-4,这是完全正确的。只要你考虑这个方案,你就应该看看clojure。我对clojure最大的问题是JVM。否则我认为clojure可能是完美的。但是JVM对我来说基本上是一个阻碍,因为它不能输出一个没有安装Java的人可以执行的二进制文件。。尽管我同意这种说法,但真正的问题是编辑大量使用括号的代码的困难。我不能使用emacs,只能使用vim,所以我不能为emacs使用paredit或类似的工具。如果我使用一些Lisp,我认为我能走的唯一途径就是找到一个好的vim插件,或者只是处理手动平衡和重新排列括号的痛苦。但是vim在默认情况下真的很糟糕。而且,能够创建自定义类型会在我试图避免的语言中造成复杂性。例如,在处理诸如值和类型相等之类的事情时,这种复杂性是显而易见的。当我引用这些例子的时候,我脑子里在想Go,但是当你摆脱OOP的时候