You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Haskell中将带重音字母转换为无重音字母?

移除带重音字母的Haskell实现

该实现用于将带重音的字母替换为对应无重音字母,示例效果:removeAccents "hétfő" == "hetfo"

辅助替换函数 replaceGivens

这个递归函数负责将字符串中所有指定字符替换为目标字符:

replaceGivens :: Char -> Char -> String -> String
replaceGivens a _ [] = []
replaceGivens a x (y:ys)
 | a == y  = x : replaceGivens a x ys
 | otherwise = y : replaceGivens a x ys

主去重音函数 removeAccents

通过检查字符串中是否包含特定带重音字母,逐一调用辅助函数完成替换:

removeAccents :: String -> String
removeAccents "" = ""
removeAccents b
 | 'á' `elem` b   = replaceGivens 'á' 'a' b 
 | 'é' `elem` b   = replaceGivens 'é' 'e' b
 | 'í' `elem` b   = replaceGivens 'í' 'i' b
 | 'ő' `elem` b   = replaceGivens 'ő' 'o' b
 | 'ö' `elem` b   = replaceGivens 'ö' 'o' b
 | 'ó' `elem` b   = replaceGivens 'ó' 'o' b
 | 'ú' `elem` b   = replaceGivens 'ú' 'u' b
 | 'ű' `elem` b   = replaceGivens 'ű' 'u' b

内容的提问来源于stack exchange,提问作者teki2021

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 23:15:45