Я повторяю список [Char], мне интересно, как лучше всего выполнить итерацию.Итерация с использованием счетчиков в функциональном программировании?
Эта функция вызывает себя рекурсивно и возвращает обратно к себе счетчик, который уменьшается на каждую итерацию.
Его только для иллюстративных целей, так что всегда возвращает истину для каждого Char:
text = ["abcsdsdsdsd"]
exampleFunction :: Int -> String -> [Bool]
exampleFunction textlen text
| textlen >= 0 = True : exampleFunction (textlen - 1) text
| otherwise = []
Использование «textlen» как счетчик кажется довольно важно, это лучший способ и/или наиболее Haskell, как в реализовать это?
В зависимости от вашей цели. Например, если у вас есть список Ints и вы хотите получить результат из него, вы можете использовать fold. Или, если вы хотите применить функцию к каждому элементу списка, вы можете использовать карту или обобщенную, которую вы можете применить к типу данных Haskell, например, «Возможно», и тому подобное, и т. Д. Вы можете использовать fmap. Взгляните на класс типа Functor. Functor предназначен для тех типов данных, которые могут быть сопоставлены по тому, какой список является одним из типов данных. На основе вашего примера вы можете, например, использовать map \ _ -> True yourlist – Ch0k0l8
'' abcsdsdsdsd '' эквивалентно '['a', 'b', 'c', 's', 'd', 's' , 'd', 's', 'd', 's', 'd'] '. – chepner