Я новичок и пишу об осуществлении палача в haskell. Необходимо показать угадывания символов '* „-как строка, в настоящее время я использую этот код:Работа со списками
proceed char word progress = let zprog = zip progress [0..] in
foldl (\a x -> a ++ [fst x]) "" $ map (f char word) zprog where
f c w el =
if c == w !! (snd el) then
(c, snd el)
else
el
Если слово было„тень“и прогресс, как„******“, символ =“ s 'возвращает "s ****".
Как я могу переписать эту функцию? Я вижу, что это не чистое решение. Решение (по @luqui):
proceed char = zipWith combine where
combine x y
| x == char = char
| otherwise = y
(«слово» и «прогресс» аргументы трансфертов в zipWith becose эты-восстановительный Хаскеля)
Чёрный человек, изумительный! –
Для дополнительного удовольствия попробуйте удалить все вхождения 'word' и' progress' из источника этой функции – luqui
Ничего себе, редукция (не знаю о имени), я прочитал об этом, спасибо. –