user8638529
user8638529

Reputation:

Remove digits from file

I'm trying to create new file without digits in strings

main :: IO ()
main = do
    contents <- readFile "input1.txt"
    putStr (process contents)

check = if isDigit x
            x = "a"

process :: String -> String         
process = map check

but getting that error: "Syntax error in expression (unexpected symbol "process")". What am I doing wrong?

Upvotes: 1

Views: 89

Answers (1)

sidoshi
sidoshi

Reputation: 2160

In Haskell, if “statements” are actually expressions and must return a value. So you need to have an else block.

import Data.Char (isDigit)

check x = if isDigit x then 'a' else x

process :: String -> String
process = map check

main :: IO ()
main = do
    contents <- readFile "input1.txt"
    putStr (process contents)

Also, if you want to remove the digits, then filter is a better option than using map check. So you can refactor process to

process :: String -> String
process = filter (not . isDigit)

Upvotes: 2

Related Questions