我有這段代碼(我是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