Tag: 语言构造

关于Haskell的问题 – > C#转换

背景: 我被“拖累”看到这个问题: Fibonacci在Haskell中的封闭式表达式 当作者最初用许多其他语言标记但后来专注于Haskell问题时。 不幸的是,我对Haskell没有任何经验,所以我无法真正参与这个问题。 然而,其中一个答案引起了我的注意,回答者把它变成了一个纯整数学问题。 这对我来说听起来很棒 ,所以我必须弄清楚它是如何工作的,并将其与递归的Fibonacci实现进行比较,以了解它的准确性。 我有一种感觉,如果我只记得涉及非理性数字的相关数学,我可能能够自己解决所有问题(但我没有)。 因此,我的第一步是将其移植到我熟悉的语言中。 在这种情况下,我正在做C#。 幸运的是,我并没有完全处于黑暗中。 我在另一种函数式语言(OCaml)方面有很多经验,所以很多看起来对我来说都很熟悉。 从转换开始,一切看起来都很简单,因为它基本上定义了一个新的数字类型来帮助计算。 然而,我在翻译中遇到了几个障碍,但我在完成翻译时遇到了麻烦。 我的结果完全错了。 分析: 这是我正在翻译的代码: data Ext = Ext !Integer !Integer deriving (Eq, Show) instance Num Ext where fromInteger a = Ext a 0 negate (Ext ab) = Ext (-a) (-b) (Ext ab) + (Ext cd) = Ext (a+c) (b+d) (Ext ab) […]