При запуске hlint функция weightDelta
постоянно предлагает уменьшить Eta. Я прочитал другой связанный с этим вопрос, но я не могу передать понимание в этом случае.
module StackQuestion where
import qualified Data.Vector as V
type Weights = V.Vector Double
type LearningRate = Double
weightDelta :: LearningRate -> Double -> Double -> Weights -> Weights
weightDelta n r y ws = V.map update ws
where update w = diff * n * w
diff = r - y
Каждое изменение, которое я пытаюсь сделать, чтобы «уменьшить» его до синтаксиса без точек, просто ломает его. Где нужно внести изменения, и есть ли какая-то интуиция или уловка, чтобы избежать внушения эта редуцировать в будущем?
pointfree
(cabal install pointfree
), так что вы можете экспериментировать, чтобы проверить/расширить свое понимание. (например, там написано, что полностью бесточечной версией являетсяweightDelta = (((V.map . (*)) .) .) . (. (-)) . (.) . (*)
.) - person huon   schedule 09.07.2012