(我是stackoverflow的新手,会尽我所能适当地问我的问题,如果我不这样做,请随时调查我)。
所以,我是 Haskell 的新手,我正在做一些练习来掌握它。
我已经解决了一半的练习,即用辅音 + 'o' + 那个辅音替换字符串中每个出现的辅音,然后返回新字符串,代码如下:
hurdyGurdy c = concat [ if n `elem` "AEOUYaeouy" then [n] else [n, 'o', n] | n <- c]
虽然我完全坚持将 hurdyGurdy 字符串变回它对应的正常单词,即“HoHelollolo”应该变成“Hello”。
所以我在想我知道每个辅音都会有一个下一个字符'o',如果我可以将这些从列表中删除/删除,那就太棒了。或者如果我用 n 替换整个 [n, 'o', n]。虽然我只是不知道该怎么做。
我猜第一种方法是最简单的,但我如何摆脱当前元素和下一个元素?
这不完全是家庭作业,它是家庭作业的热身..!
编辑:我已经这样解决了..看着你不太好
unRovarsprak ("") = ("")
unRovarsprak (c1:'o':c2:xs)
| isConsonant c1 = c1 : unRovarsprak xs
| otherwise = xs
unRovarsprak (c1:xs)
| c1 `elem` vokaler = c1 : unRovarsprak xs
| otherwise = xs