11
Đêm qua, tôi đã viết một số mã giải trí và tại một số thời điểm, tôi đã thay thế concatMap
bằng >>=
và thấy tăng tốc 10% trong mã của mình.Tại sao >> = nhanh hơn concatMap khi chúng phải giống nhau?
Tôi đã bị ấn tượng về định nghĩa >>=
cho []
chính xác là concatMap
, vì vậy tôi hơi bối rối.
Thú vị. Tôi không thể không nghĩ rằng một 'Có thể gập lại' cũng là một' Thay thế' tương đương với một 'Monad' .... – AJFarmar
@AJFarmar tại sao bạn lại nghĩ vậy? Tôi không biết làm thế nào mà làm cho bất kỳ ý nghĩa – Emil
@ user3217013 'bind 'fa f = foldr (<|>) trống $ foldr (:) [] (fmap f fa)' trong đó 'bind' :: (Có thể gập lại f, Áp dụng f) => fa -> (a -> fb) -> fb'. QED. – AJFarmar