2017-04-13 51 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