gpt4 book ai didi

Haskell 模数原始递归

转载 作者:行者123 更新时间:2023-12-02 16:37:29 27 4
gpt4 key购买 nike

我正在尝试使用 primtive recursive 在 haskell 中创建模函数功能。我知道这是可能的(因为它位于维基百科上的示例函数列表中)

我也知道我应该如何逻辑地做到这一点..但我就是无法实现它!

IE,逻辑是(不是原始递归或 haskell)

function mod(a, b){
while(a > b)
a -= b
return a;
}

我可以使用递归来定义(同样不是 Haskel)

function mod(a, b){
if(a < b) return a;
return mod(a - b, b);
}

但我似乎无法使用原始递归函数来实现它。我咬我做不到的是a的逻辑

我认为要真正解决我的问题,我需要某种定义的逻辑,例如(再次不是 haskel)

reduce(a, b)
= a >= b -> a-b
otherwise x

如果有人可以帮助我解决这方面的任何问题,我将非常感激,谢谢

编辑::我想过使用除法来定义一个模函数,即 mod(a, b) = a - (a/b) * b,但由于我的除法原始递归函数依赖于模,所以我不能这样做哈哈

最佳答案

看看这个以获得一些提示:http://www.proofwiki.org/wiki/Quotient_and_Remainder_are_Primitive_Recursive

另请注意,维基百科的定义有些狭窄。通过对单个有限数据结构进行归纳而建立的任何函数都是原始递归的,尽管需要一些时间来证明这可以转化为维基百科中给出的工具。请注意,我们可以用经典的皮亚诺风格来代表自然。当然,您不必这样做,但它使归纳推理变得更加自然。有关原始递归概念的引用,请参阅 agda wiki:http://wiki.portal.chalmers.se/agda/pmwiki.php?n=ReferenceManual.Totality#Primitiverecursion

以下页面还有我认为对原始递归的更清晰的说明:http://plato.stanford.edu/entries/recursive-functions/#1.3

关于Haskell 模数原始递归,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8629738/

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