Учитывая кортеж типа (Int, a)
, такой как (n,c)
, я хочу построить список [a]
, в котором элемент c
повторяется n
раз, то есть (4, 'b')
становится "bbbb"
.Мое текущее решение состоит в следующем:
decode :: (Int, a) -> [a]
decode (n, a) = map (\x -> a) [1..n]
Как вы можете видеть, я отображаю анонимную функцию, которая всегда возвращает a
по списку n
элементов, первых n положительных целых чисел.Есть ли более эффективный способ сделать это?Я чувствую себя плохо из-за создания списка целых чисел и никогда не использую его.Другое решение будет использовать вспомогательную функцию и возвращать n
, но это кажется грязным и слишком сложным.Возможно, есть что-то похожее на следующий код Python?
'b'*4