【问题标题】:haskell implementation of a sequence序列的haskell实现
【发布时间】:2015-01-24 03:09:48
【问题描述】:

我刚开始使用 Haskell,我正在苦苦挣扎!!!

所以我需要创建一个包含公式的列表 om Haskell
F(n) = (F(n-1)+F(n-2)) * F(n-3)/F(n-4) 我有 F(0) =1, F(1)=1,F(2)=1,F(3)=1

所以我想初始化列表的前 4 个元素,然后创建一个运行 n>4 的递归函数并将值附加到列表中。

我的代码是这样的

let F=[1,1,1,1]

fib' n F
    | n<4="less than 4"
    |otherwise = (F(n-1)+F(n-2))*F(n-3)/F(n-4) : fib (n-1) F

我的代码在概念上看起来对我来说是正确的(虽然不确定),但是当我编译它时出现不正确的缩进错误。我是否可以按照我的方式初始化列表的元素?

【问题讨论】:

  • 这段代码有很多问题。您最好在这里查看聊天室,或在 FreeNode 上查看#haskell

标签: haskell functional-programming sequence ml


【解决方案1】:

首先,Haskell 中的变量必须小写。其次,Haskell 不允许您随意混合整数和分数,因为您可能习惯于使用无类型或几乎没有类型的语言。如果您想从IntInteger 转换为Double,则需要使用fromIntegral。第三,您不能在需要数字的上下文中粘贴字符串。第四,您可能有也可能没有缩进问题——请确保不要在您的 Haskell 文件中使用制表符,并使用 GHC 选项-fwarn-tabs 以确保。

现在我们进入问题的核心:您在处理这一切时都有些错误。我会给你一个提示而不是完整的答案:

thesequence = 1 : 1 : 1 : 1 : -- Something goes here that *uses* thesequence

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多