我不久前开始学习Haskell,对一个我正在尝试创建的函数有疑问。
我想要创建一个函数,验证x是否是n的因数(例如:375的因数为1、3、5、15、25、75、125和375),接着移除1和该数字本身,然后验证该列表中奇数的数量是否等于偶数的数量!
我考虑创建以下函数来计算第一部分:
factor n = [x | x <- [1..n], n `mod`x == 0]
但如果我在提示符上输入这个,它会说“未定义'n'”。我的想法是输入一个数字,比如375,然后计算列表。我做错了什么?我看过书中将函数放在提示符中的例子。
然后,为了获取我所说的元素,我考虑使用tail和init来获取列表。你认为这是个好主意吗?
最后,我想用if语句来验证最后一部分。例如,在Java中,我们会做出类似以下的内容:
(x % 2 == 0)? even++ : odd++; // (I'm a beginner to Java as well)
如果偶数等于奇数,那么就会说所有条件都得到了验证(我们有相同数量的偶数和奇数)。
但在Haskell中,由于变量是不可变的,我该如何执行something++操作呢?
感谢您能给予的任何帮助:)