我有这段代码(我是Haskell的新手)。在Haskell中增加字符串标识符的数字部分
import Data.List.Split
padL :: Int -> String -> String
padL n s
| length s < n = replicate (n - length s) '0' ++ s
| otherwise = s
strInc :: String -> String -> String
strInc sep str =
let strarr = splitOn sep str
zprefix = strarr !! 0
znumber = strarr !! 1
in zprefix ++ sep ++ padL (length (znumber)) (show (read (znumber) + 1))
这是不好的,一般的还是很好的Haskell代码?如何改进? 谢谢。
我认为Stackoverflow不是正确的地方问这个问题。该网站是关于问题,而不是代码评论。对于代码评论,有http://codereview.stackexchange.com。 – bennofs
我在问我可能没有意识到的惯用Haskell。已经有一个被接受和回答的“我应该如何重构这个Haskell ...”的问题,类似于我的问题。如果有帮助,我可以在没有我的代码的情况下进行重新配置,标题对于我的问题是自我解释的。 – itmitica
如果可能的话,分别维护标识符的数字部分,稍后只添加字符串部分。有一个'String - > String'类型的数字增量函数看起来很不愉快。如果你可以用自定义阅读和显示的方式将你的号码包装在'newtype'中以实现你的最终结果,那就更好了。 (不知道你在用什么,这就是为什么我不确定。) – AndrewC