如何在Haskell中打印相同的char

时间:2014-10-28 20:41:18

标签: string haskell

我想打印一个字符串,强调字符串n次,其中n是Haskell中字符串的长度。

我该怎么做?

我的字符串是:“可用的字符(x)” 我希望有一个字母强调该句子,它应该与“可用字符(x)”具有完全相同的长度。但是x是一个int,所以它可能是“1”或“10”或“1000”等。所以长度是可变的。我得到了长度,但我不知道如何打印该字符串只要字符串是...

3 个答案:

答案 0 :(得分:4)

使用replicate

underline :: String -> String
underline = flip replicate '-' . length

这会给你一个字符串,它是字符的n倍 - ' - '其中n是输入字符串的长度。它与:

相同
underline = map $ const '-'

然后您可以像这样使用它(例如yourString = "Available Chars (111)"):

> putStrLn yourString >> putStrLn (underline yourString)
Available Chars (111)
---------------------

答案 1 :(得分:3)

得到了它!

replicate n 'charHere'

例如,如果你想重复char '-' 12次:

replicate 12 '-'

答案 2 :(得分:0)

可能性是(重新)实施replicate,例如如下,

replicate' :: Int -> a -> [a]                
replicate' n x = if (n <= 0) then [] else (x : replicate (n-1) x)