【发布时间】:2018-06-28 14:37:53
【问题描述】:
我对 Haskell 和编程很陌生。我正在尝试在不使用 Data.List 中的 sum 函数的情况下添加列表的内容。到目前为止,这是我所得到的:
module Summ
where
summ :: [Int] -> Int
summ xs =
if null xs == False
then let y = x + (head xs)
let xs = tail xs
else print y
我很确定这段代码有很多错误,但目前最新的错误是else 语句的“输入解析错误”。怎么了?
【问题讨论】:
-
y在表达式的第一个分支中定义,但在后半部分使用。你期望发生什么? -
我在想我可以使用
y作为我用来添加列表元素的表达式的存储。我想不出另一种方法来做到这一点...... -
看看Learn You a Haskell,它将引导您了解语法和解决问题的基础知识。
-
我一直在用它和@haskellbook自学,还有其他好的资源吗?
-
请记住,您现在使用的是一种纯函数式语言。没有“存储”或“变量”之类的东西(至少,不是通常意义上的)。这是一个巨大的调整,但为了在 Haskell 中高效编程,你必须习惯这种范式转变。
标签: haskell if-statement