gpt4 book ai didi

where 语句的 Haskell 语法错误

转载 作者:行者123 更新时间:2023-12-02 17:12:12 28 4
gpt4 key购买 nike

我正在编写一些 Haskell 代码来学习该语言,但遇到了语法错误:

Vec2.hs:33:27: parse error on input '='

我在这里编写的代码如下。错误指向 vec2Normalize 中的第二项iLength = ...我没有看到语法错误

-- Get the inverse length of v and multiply the components by it
-- Resulting in the normalized form of v
vec2Normalize :: Vec2 -> Vec2
vec2Normalize v@(x,y) = (x * iLength, y * iLength)
where length = vec2Length v
iLength = if length == 0 then 1 else (1 / length)

最佳答案

由于您没有提供完整的代码,因此涉及一些猜测,但此错误可能表明您的行 iLength = ... 未正确缩进;实际上,iLength 从前一行 length =右侧开始。

您的原始文件是否使用制表符而不是空格进行缩进?如果是这样,请注意 Haskell 始终将选项卡解释为跨越 8 列。所以,例如,

<TAB>where length = ...
<TAB><TAB><SPACE><SPACE>iLength = ...

将被解释为

        where length = ...
iLength = ...

因此会导致错误,即使您的编辑器在使用 4 列选项卡时可能会显示正确对齐的行。

关于where 语句的 Haskell 语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16870038/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com