我有一个正在增长的功能,并且正在获得一种像下面所示的where模式。如果f = fooed e等于裸e等于baded d ...,这些的正确替代方法是什么?

myFunc:: String -> Options -> String
myFunc someString opts = topStr ++ editedMidStr ++ botStr
    where editedMidStr  = foo f
          f             = bar e
          e             = baz d
          d             = qux c
          ...           = ...

最佳答案

使用功能组成!

myFunc myString opts = topStr ++ editedMidStr ++ botStr where
  editedMidStr = (foo . bar . baz . qux . makeACFromMyString) myString

10-06 10:36