scalawithcats / scala-with-cats

Source code for Scala with Cats
http://underscore.io/books/scala-with-cats
396 stars 133 forks source link

Misleading Figure 3.1 for Option display #155

Open wherby opened 5 years ago

wherby commented 5 years ago

image

For the display of Option, the value in option SHOULD be full circle, for the function which applied in map will only receive full circle. While the outer box has Option syntax, there is no need to change the circle to be the half circle. So that will lead misunderstanding context.

wherby commented 5 years ago

image

While there may has explanation for that Option[Circle] is just mark as box and half circle. But see the functors [Figure 3.4] the circle in F[A] is the full circle. When mark [Option] as [F] , the Option[A] in Figure should have full circle.

The Option display as box with half graphics need to be changed to another way, for box and half graphics implicit two syntax meaning, while Option is only one syntax meaning.

davegurnell commented 5 years ago

Thanks for posting this. I can see the potential for confusion...

There’s an intended difference between the two diagrams. The half circle diagram is for Option, whereas this one is for a generic F.

I appreciate that the two are fairly similar. Possibly too similar. But that’s our intention anyway.

I’ll leave this issue open and chat to @noelwelsh about it. If we can think of something more creative we’ll adjust the disarms accordingly.

Cheers!

On 7 July 2019 at 11:54:52, Tao (notifications@github.com) wrote:

[image: image] https://user-images.githubusercontent.com/3948053/60767281-59be2080-a0e8-11e9-8111-7d3a8d40914b.png

While there may has explanation for that Option[Circle] is just mark as box and half circle. But see the functors [Figure 3.4] the circle in F[A] is the full circle. When mark [Option] as [F] , the Option[A] in Figure should have full circle.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/underscoreio/scala-with-cats/issues/155?email_source=notifications&email_token=AABYRZ2IGVLNZPSURTRBAB3P6HDPZA5CNFSM4H6UURUKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODZLJENA#issuecomment-508990004, or mute the thread https://github.com/notifications/unsubscribe-auth/AABYRZYFHDBQKJPI4POURC3P6HDPZANCNFSM4H6UURUA .

wherby commented 5 years ago

Option

How about the picture above, the key point is for Option, there is only one syntax meaning . You could have more creative choice.