【发布时间】:2018-01-08 12:16:46
【问题描述】:
做一个小项目,但经过几个小时的工作,我仍然无法弄清楚如何将列表中的每个元素除以变量
diver xs = map divhs j
where divhs = div hs
hs = tupleTest1 xs
j = jot xs
不会工作,也不会
map (/ j) hs
欢迎任何人提供帮助
真的是你的 哈斯克尔磨砂
【问题讨论】:
-
请提供完整的例子+错误信息
-
map (
div2) [1,2,3,4,5,6] 评估为 [0,1,1,2,2,3],但从您的代码来看就像你正在尝试做一些更复杂的事情...... -
好吧,
map (/ j) hs肯定会起作用,前提是j是一个可整除的数字,hs是这些数字的列表。显然问题出在其他地方,例如hs不是数字列表。总是给你的函数类型签名,所以你会在它们所在的地方看到错误,而不是在完全不同的地方。 (此外,请始终使用类型签名,因为它们使您更容易理解您的代码应该做什么。) -
可能与您的问题无关,但请注意,给出的代码甚至没有解析。你不能像这样缩进 Haskell 代码;
where块中的所有绑定必须以相同的缩进开始。 (如果你想让它们排成一行,你可以在=之前添加空格,尽管我敢说这通常不是一个相当糟糕的主意。) -
那么请使用 SSH,或 FTP,或哎呀,电子邮件或其他任何方式在两台计算机之间移动代码。如果您发布的代码有全新的问题,并且可能不包含真正的问题,我们应该如何分析问题?