gpt4 book ai didi

haskell - 如何将函数调用的值存储到变量

转载 作者:行者123 更新时间:2023-12-02 11:09:58 26 4
gpt4 key购买 nike

我有这个函数,我需要检查数字 [1..n]ngdc 是否为 == 1 然后进行一些计算。所以我陷入困境,因为我找不到将 n 的初始值存储到变量的方法。

例如,如果我用数字 7 调用函数,它是一个递归,所以 n 变为 6 然后 5 等等,这样我就可以' t gdc 正确;例如1-7然后2 - 7然后3 -7。你知道如何将n的值存储到a变量吗?

myproduct :: Integer->Integer

myproduct 0 = 1
myproduct n
|gcd n (n from first call) /= 1 = myproduct (n-1)
|otherwise = x
where
x = n * myproduct (n - 1)

最佳答案

使用辅助函数(通常称为go)进行递归,并在最外层调用中使用与递归调用不同的变量名称,如下所示:

myproduct :: Integer->Integer

myproduct orig_n = go orig_n
where
go 0 = 1
go n
|gcd n orig_n /= 1 = go (n-1)
|otherwise = x
where
x = n * go (n - 1)

关于haskell - 如何将函数调用的值存储到变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55133331/

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