2017-04-13 52 views
0

我的问题是建立一个给定人和小时数的函数(Integer),它在名称的开头添加“erp”,但“r”必须乘以小时。Haskell中的字符串串联

我的功能必须是类型:

drink :: Integer -> Client -> Client 

这里it's一个例子:

drink 5 (Aperson name _ _) = "errrrrpname" 

我知道该怎么做串联,但我不知道如何乘“R “时间量。

+0

你可以做一个函数,只需要在''String'和s'整数'N'并还给了'是's'乘以'n'的字符串(无需处理'Client')?我会从那里开始。 –

+0

那么你为什么不称呼你的问题,以反映你对“字符串乘法”(而不仅仅是“串联”)感兴趣的事实? – metaphori

+1

如果您想使用标准库函数(而不是自己实现),则有'replicate'。 – Lazersmoke

回答

1

重复字符

take 10 $ repeat 'a'  -- "aaaaaaaaaa" 

重复字符串

[1..10] >>= (\_ -> "x-") -- "x-x-x-x-x-x-x-x-x-x-" 
[1..10] >> "x-"   -- "x-x-x-x-x-x-x-x-x-x-" 
+0

虽然这两种方法都起作用,但他们都不适合他在做什么。 – Lazersmoke

+1

@Lazersmoke我同意这些都不是最理想的,但他们工作,具有正确的复杂性,并且是合理可读的。在我看来这是一个很好的答案,如果只有图书馆不包含'replicate(M)',这将是非常好的。但这并不是什么大问题。 – chi