network-api-support 패키지 덕분에 Endo 유형을 발견했으며, 아마도 Endo 's에 값을 넣을 수있는 필요성을 발견했습니다. 그 결과 maybeEndo라는 함수를 작성했습니다.하스켈 : Endo를 쓰는 것이 더 나은 방법일까요?
setProxy :: Proxy -> RequestTransformer
setProxy (Proxy pHost pPort) = Endo $ addProxy pHost pPort
maybeEndo :: (a -> Endo b) -> Maybe a -> Endo b
maybeEndo _ Nothing = Endo id
maybeEndo f (Just v) = f v
setPotentialProxy :: Maybe Proxy -> RequestTransformer
setPotentialProxy = maybeEndo setProxy
나 한테 무슨 파업하는 것은이 이미 패턴의 몇 가지 유형으로 캡슐화해야 뭔가 것 같아 것입니다 : 여기에 사용되는 그것의 예입니다.
이름이 있습니다 : foldMap! 우수, 그게 내가 찾고 있었던 바로 그 것이다. 아주 좋은 대답! –