Haskell'in Uygulamalarını öğreniyorum. Görünüşe göre (muhtemelen yanılıyorum) pureişleve gerçekten ihtiyaç duyulmuyor, örneğin:
pure (+) <*> [1,2,3] <*> [3,4,5]
olarak yazılabilir
(+) <$> [1,2,3] <*> [3,4,5]
Birisi pureişlevin açık eşleme üzerinde sağladığı faydaları açıklayabilir fmapmi?
purebir kişinin Uygulamalı bir hesaplamada "saf" değerleri kullanmasına izin verir. Doğru bir şekilde gözlemlediğiniz pure f <*> xgibi f <$> x, aynısı olsa da, diyelim ki böyle bir eşdeğer yoktur f <*> x <*> pure y <*> z. (En azından ben öyle düşünmüyorum.)
MonoidpureMonoidApplicativepureSemigroupMonoidpure
fmap (\f' x' z' -> f' x' y z') f <*> x <*> z, sanırım. Fikir, Applicative"değişim" yasası olarak dokümantasyondadır.
pure f <*> xtam olarak aynıfmap f x. İçinepuredahilApplicativeolmanın bir nedeni olduğundan eminim, ama neden olduğundan tam olarak emin değilim.