gpt4 book ai didi

Haskell:递归复制函数

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

我刚刚开始使用 Haskell。我正在尝试创建一个函数来模仿 Haskell 中的标准 replicate 函数,但使用递归。例如,

Prelude> replicate 3 "Ha!"
["Ha!","Ha!","Ha!"]

它应该是 Int -> a -> [a] 类型。到目前为止,我有:

myReplicate :: Int -> a -> [a]
myReplicate x y = y : myReplicate (x-1) y
myReplicate 0 y = [ ]

但是,我的函数总是生成无限列表:

Prelude> myReplicate 3 "Ha!"
["Ha!","Ha!","Ha!","Ha!","Ha!","Ha!","Ha!",...

最佳答案

你必须把第二种情况放在第一种情况之前,否则它永远不会到达第二种情况。

myReplicate :: Int -> a -> [a]
myReplicate 0 y = [ ]
myReplicate x y = y : myReplicate (x-1) y

关于Haskell:递归复制函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30958914/

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