In the following exercise i want to manipulate a random string input by using functions.
Step 1: I want to remove all characters which are not digits, letters or spaces
Step 2: I want to replace all spaces with '_'
Step 3: I want to convert all numbers to spaces
Step 4: I want to replace all 'a' with 'z' and all 'A' with 'Z'
For lists i already used the filter function and i am wondering if this function can also be used for string inputs. I am not quite sure how to approach this exercise.
Update: I found an approach to solve step 1 and step 3 but i am not quite sure how to put the different functions together in a function which includes every step. Is it possible to call the different functions one after another in the right order in some kind of main function?
import Data.Char toUpperStr xs = map toUpper xs -- function to convert lower to upper dropInvalids xs = (filter (\x -> isUpper x || isSpace x || isDigit x)) $ toUpperStr xs replaceBlank  =  -- function to replace " " with "_" replaceBlank (x:xs) = if x == ' ' then '_' : replaceBlank xs else x : replaceBlank xs