【发布时间】:2011-03-20 15:57:01
【问题描述】:
虽然 F# 和 IronPython 语言在技术上有所不同,但在我看来,它们的潜在用途之间存在很大的重叠。什么时候比另一个更适用?
到目前为止,在我看来,F# 的计算效率更高,而 IronPython 从 Python 继承了更好的库。很高兴得到纠正。
有一个有点相关的问题is F# to IronPython/IronRuby as C# is to VB.NET?,但大多数答案都是关于语言范式而不是它们的实际适用性。
编辑:我想我应该添加更多背景。总的来说,我对 Python 有很好的经验,并且在经历了一些犹豫的函数式编程步骤之后才学习了 F#,主要是在 Erlang 中。我目前觉得将来可以继续使用 Python 或 F#。我想决定我应该使用哪一个以及在哪里使用。例如:
- 作为标准库的一部分,Python 具有非常好的数据结构。前几天我需要一个等效的 Python 的
heap模块,它在标准 F#/.net 库中不可用。 IronPython 的点。 - F# 可用于构建更方便的库,更易于从其他 .Net 语言访问。因此,对于 .Net 驻留库,我更喜欢 F#。
- 跨平台开发。 IronPython 在这里更好。 F#/Mono 可用的平台集要小得多,而且 F#/OCaml 兼容性不容易维护,尤其是在库方面。
- IronPython 交互式 shell 在我看来比 fsi 更容易。 YMMV。
所以问题归结为:除了偏爱一种范式对另一种范式或某些团队或公司的偏好之外,是否有任何理由让您选择 F# 而不是 IronPython,反之亦然?假设您对两者都同样有信心?或者它们在所有实际用途中完全等效?
编辑:好吧,伙计们,看起来你认为这是一个愚蠢的问题, 否决了它的答案。但至少它是诚实的。所以请只是一个提示。问这个问题是不可能区分两者还是我进入了一些秘密禁忌?如果它看起来像一个巨魔,有人可以告诉我吗?
【问题讨论】:
-
您更喜欢哪一个(在您的职能和政治要求范围内)?
-
我不认为这是一个愚蠢的问题,但这是一个奇怪的问题。它们是非常不同的开发语言,而且也相当小众,而且我不认为地球上除了你之外,还有几个人不得不做出这个选择。任何这样做的人都可能只是使用他们更熟悉的语言。
-
如果你的问题是“诚实的”,你就会承认我已经两次反驳了你的第一点,向你推荐了 F# 的内置
Set数据结构。 -
@Jon:看。你还没有反驳任何东西。我告诉过你集合和优先级队列之间是有区别的。您刚刚提到 F#
Set可用是昨天,并且您给出了一个错误的使用示例,其中优先级队列用于排序,这不是它的重点。不过,如果您能在另一个问题上说服我或说服其他人 F#Set用作优先级队列,我将在此处进行修改。 -
@Kylotan:谢谢。这实际上是一个很好的答案。
标签: .net python f# ironpython