【发布时间】:2013-04-24 03:58:40
【问题描述】:
我刚开始使用 Haskell,想做一个小函数,它需要一个整数和一个字符串,以整数所暗示的频率重复字符串中的每个字符。
例如:乘以 3 "hello" 将输出 "hhheeelllooo"
我现在的问题是我不确定如何遍历所有字符。
multiply::Int->String->String
multiply 1 s = s
multiply i s = multiply (i-1) (take 1 s ++ s)
所以我会得到“hhhello”。所以基本上我需要做类似的事情:
mult::Int->String->String
mult 0 s = []
mult 1 s = s
mult i s = "iterate over s, take each char and call a modified version of the multiply method that only takes chars above"
谢谢你帮助我
【问题讨论】:
-
这是家庭作业吗?
-
不,第一个是作业,乘以第一个字母 - 但我得到了这个并想做更多的事情。基本上我只是不明白如何循环。我的尝试是从列表中删除我访问过的每个字母,就像在 java 或 c++ 中一样,但我想这在这里行不通
-
附带说明,我们不倾向于在 Haskell 中进行迭代;函数式编程适用于递归解决方案,例如下面的 mhwombat。
标签: loops haskell recursion char