gpt4 book ai didi

haskell - 如何修复我的 Haskell 条件语句?

转载 作者:行者123 更新时间:2023-12-02 16:39:38 25 4
gpt4 key购买 nike

我正在尝试制作一个简单的条件语句来检查一个值是否等于另一个值,然后将 bool 值设置为 true 或 false,但我遇到了一些困难。

到目前为止,我已经尝试用几种不同的方式重新格式化我的文本,但没有一种有效,但我在官方文档或谷歌搜索问题中没有找到太多帮助。

import Data.List

numberB :: Integer
numberB = 10
eql :: Integer -> Bool
eql = 10
if eql == numberB
then True
else False

我当前收到的错误是:

functions.hs:14:1: error:
Parse error: module header, import declaration
or top-level declaration expected.
|
14 | if eql == numberB
| ^^^^^^^^^^^^^^^^^...

我不完全确定它要我在这里做什么,因为我找不到任何有效的进口声明。我也不认为有任何我真正需要使用的模块,因为我没有在这里制作模块,而且,正如我之前提到的,我找不到任何导入语句可以使这项工作正常进行。我也不确定什么是顶级声明,因为我在 Haskell 方面没有那么丰富的经验。也就是说,我不知道如何修复这个错误。

任何帮助将不胜感激。

最佳答案

您的条件语句表达式没有问题,但它属于什么定义?

为了决定这一点,Haskell 使用缩进。属于某个定义一部分的任何代码都必须在其下方缩进至少一个空格:

name =   -- value
if eql == numberB
then True
else False

但是您的 if ... 与前面的定义 eql = ... 从同一列开始。

因此,它是一段不属于任何定义的代码,这就是您得到的语法错误(它谈论“声明”,我猜这是它的官方术语)。

在定义中

eql = 10

名称为eql,值为10。它与声明的类型不匹配,

eql :: Integer -> Bool

但是语法错误甚至在检查类型之前就中止了编译。

关于haskell - 如何修复我的 Haskell 条件语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58688706/

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