Я понимаю, что будет следующее:
[(+2),(+1)]<*>[1,2,3] == [3,4,5,2,3,4]
Я также понимаю, что fmap
реализован как map
. Но как я мог мысленно отобразить это вычисление в своей голове? Когда я впервые увидел это, я предположил следующее:
[(*2),(+1)]<*>[1,2,3] == [4,5,6]
Второй раз я подумал о: [[3,4,5],[2,3,4]]
. Но, с другой стороны, <*>
возвращает f b
, поэтому я знал, что это невозможно. Итак, мой вопрос: какие шаги в уме, чтобы понять это?