我有字符串列表
field :: [String]
field = ["......",
"......",
"......",
"......",
"......",
"......"]
但这是静态的。我正在尝试编写包含两个数字的函数(一个字符串X的长度和所有字符串Y的数量)。
createField :: (Int, Int) -> [String]
例如:
createField 4, 5
它应该返回这个
["....",
"....",
"....",
"....",
"...."]
您能帮我吗?
答案 0 :(得分:3)
尽管没有错,但使用2元组作为参数并不是很常见。编写带有签名的函数更容易 Haskell-ish :
createField :: Int -> Int -> [String]
然后您可以使用createField 4 5
来调用它。
您可以在这里利用replicate :: Int -> a -> [a]
来构造String
和{em}列表String
。例如:
GHCi> replicate 4 '.'
"...."
我将其保留为构建列表本身的练习。该函数的形式为:
createField :: Int -> Int -> [String]
createField m n = _ (replicate m '.')
_
是您需要填写的内容。