Top Banner
Origami Monadic folds for Scala Eric Torreborre ScalaSyd ™ @charlesofarrell
48
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Origami, a monadic fold library for Scala

Origami

Monadic folds for Scala

Eric TorreborreScalaSyd

™ @charlesofarrell

Page 2: Origami, a monadic fold library for Scala
Page 3: Origami, a monadic fold library for Scala
Page 4: Origami, a monadic fold library for Scala
Page 5: Origami, a monadic fold library for Scala
Page 6: Origami, a monadic fold library for Scala

composition?reuse?

performance?

safety?

Page 7: Origami, a monadic fold library for Scala
Page 8: Origami, a monadic fold library for Scala
Page 9: Origami, a monadic fold library for Scala
Page 10: Origami, a monadic fold library for Scala
Page 11: Origami, a monadic fold library for Scala

No exception, please!

Page 12: Origami, a monadic fold library for Scala
Page 13: Origami, a monadic fold library for Scala
Page 14: Origami, a monadic fold library for Scala

finalization

foldinitia

lization state

Page 15: Origami, a monadic fold library for Scala

stream fold

monadic context

Page 16: Origami, a monadic fold library for Scala
Page 17: Origami, a monadic fold library for Scala
Page 18: Origami, a monadic fold library for Scala
Page 19: Origami, a monadic fold library for Scala
Page 20: Origami, a monadic fold library for Scala
Page 21: Origami, a monadic fold library for Scala
Page 22: Origami, a monadic fold library for Scala
Page 23: Origami, a monadic fold library for Scala
Page 24: Origami, a monadic fold library for Scala

zip

functor

Page 25: Origami, a monadic fold library for Scala

contra-functor

Page 26: Origami, a monadic fold library for Scala
Page 27: Origami, a monadic fold library for Scala
Page 28: Origami, a monadic fold library for Scala

for breaking out

Page 29: Origami, a monadic fold library for Scala
Page 30: Origami, a monadic fold library for Scala
Page 31: Origami, a monadic fold library for Scala

side-effects!

Page 32: Origami, a monadic fold library for Scala

natural transformation

Page 33: Origami, a monadic fold library for Scala

closes resource!

Page 34: Origami, a monadic fold library for Scala
Page 35: Origami, a monadic fold library for Scala

fold with IO side-effects

Page 36: Origami, a monadic fold library for Scala
Page 37: Origami, a monadic fold library for Scala

sum=0,string=foldssum=5,string=aresum=8,string=great

sum=0,string=foldssum=5,string=aresum=8,string=great

Page 38: Origami, a monadic fold library for Scala

observeWithState

Page 39: Origami, a monadic fold library for Scala

Operators…

Page 40: Origami, a monadic fold library for Scala
Page 41: Origami, a monadic fold library for Scala
Page 42: Origami, a monadic fold library for Scala
Page 43: Origami, a monadic fold library for Scala
Page 44: Origami, a monadic fold library for Scala

compositionreuse

performance

safety

Page 45: Origami, a monadic fold library for Scala
Page 46: Origami, a monadic fold library for Scala

implicits

break-out

monadic “fold”

not battle-teste

d!

Page 47: Origami, a monadic fold library for Scala

http://www.haskellforall.com/2013/08/composable-streaming-folds.html

http://conal.net/blog/posts/another-lovely-example-of-type-class-morphisms

https://www.fpcomplete.com/user/edwardk/cellular-automata/part-2

http://squing.blogspot.com.au/2008/11/beautiful-folding.html

http://notes.backgroundsignal.com/Transducers.html

Page 48: Origami, a monadic fold library for Scala

Thanks!