gpt4 book ai didi

function - 关于偶数和奇数的 Haskell 函数

转载 作者:行者123 更新时间:2023-12-04 07:04:09 25 4
gpt4 key购买 nike

我是 Haskell 的新手,几天前开始学习,我对我正在尝试创建的函数有疑问。

我想做一个函数来验证 x 是否是 n 的因数(例如:375 有这些因数:1、3、5、15、25、75、125 和 375),然后删除 1,然后删除数字本身和最后验证该列表中奇数的数量是否等于偶数的数量!

我想制作一个像这样的函数来计算第一部分:

factor n = [x | x <- [1..n], n `mod`x == 0]

但是如果我把它放在提示上,它会说 Not in scope 'n' .这个想法是输入一个像 375 这样的数字,这样它就会计算列表。我做错了什么?我在书中看到过像这样在提示中放置函数。

然后为了获取我所说的元素,我正在考虑做 tail 然后 init 到列表中。你认为这是个好主意吗?

最后我想到了做一个 if 语句来验证最后一部分。例如,在 Java 中,我们会做这样的事情:
(x % 2 == 0)? even++ : odd++; // (I'm a beginner to Java as well)

然后如果偶数 = 奇数,那么它会说所有条件都得到验证(我们有数量等于奇数的偶数)

但是在 Haskell 中,由于变量是不可变的,我将如何做 something++ 的事情?

谢谢你提供的所有帮助 :)

最佳答案

这个小功能可以完成您想要实现的所有功能:

f n = length evenFactors == length oddFactors
where evenFactors = [x | x <- [2, 4..(n-1)], n `mod` x == 0]
oddFactors = [x | x <- [3, 5..(n-1)], n `mod` x == 0]

关于function - 关于偶数和奇数的 Haskell 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18946563/

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